如何在多元模型中获得平均准确度?
How to get average accuracy in multivariate model?
我已经对具有 100 多个不同输出层的多变量模型进行了并行建模。
我能够获得平均损失函数,但我真的不可能获得平均准确度值。 (我正在做回归)
您能否提出有关如何在 KERAS 中执行此操作的任何想法?
谢谢
我创建了一个自定义回调来执行此操作
class MergeMetrics(Callback):
def __init__(self,**kargs):
super(MergeMetrics,self).__init__(**kargs)
def on_epoch_begin(self,epoch, logs={}):
return
def on_epoch_end(self, epoch, logs={}):
logs['merge_mse'] = np.mean([logs[m] for m in logs.keys() if 'mse' in m])
logs['merge_mae'] = np.mean([logs[m] for m in logs.keys() if 'mae' in m])
我使用此回调合并来自 2 个不同输出的 2 个指标。例如,我使用了一个简单的问题,但您可以轻松地将其集成到您的问题中并将其与验证集集成
这是我使用 mse 和 mae 作为指标的虚拟示例
X = np.random.uniform(0,1, (1000,10))
y1 = np.random.uniform(0,1, 1000)
y2 = np.random.uniform(0,1, 1000)
inp = Input((10,))
x = Dense(32, activation='relu')(inp)
out1 = Dense(1, name='y1')(x)
out2 = Dense(1, name='y2')(x)
m = Model(inp, [out1,out2])
m.compile('adam','mae', metrics=['mse','mae'])
checkpoint = MergeMetrics()
m.fit(X, [y1,y2], epochs=10, callbacks=[checkpoint])
打印输出为:
loss: ... - y1_mse: 0.2227 - y1_mae: 0.3884 - y2_mse: 0.1163 - y2_mae: 0.2805 - merge_mse: 0.1695 - merge_mae: 0.3345
我已经对具有 100 多个不同输出层的多变量模型进行了并行建模。
我能够获得平均损失函数,但我真的不可能获得平均准确度值。 (我正在做回归)
您能否提出有关如何在 KERAS 中执行此操作的任何想法?
谢谢
我创建了一个自定义回调来执行此操作
class MergeMetrics(Callback):
def __init__(self,**kargs):
super(MergeMetrics,self).__init__(**kargs)
def on_epoch_begin(self,epoch, logs={}):
return
def on_epoch_end(self, epoch, logs={}):
logs['merge_mse'] = np.mean([logs[m] for m in logs.keys() if 'mse' in m])
logs['merge_mae'] = np.mean([logs[m] for m in logs.keys() if 'mae' in m])
我使用此回调合并来自 2 个不同输出的 2 个指标。例如,我使用了一个简单的问题,但您可以轻松地将其集成到您的问题中并将其与验证集集成
这是我使用 mse 和 mae 作为指标的虚拟示例
X = np.random.uniform(0,1, (1000,10))
y1 = np.random.uniform(0,1, 1000)
y2 = np.random.uniform(0,1, 1000)
inp = Input((10,))
x = Dense(32, activation='relu')(inp)
out1 = Dense(1, name='y1')(x)
out2 = Dense(1, name='y2')(x)
m = Model(inp, [out1,out2])
m.compile('adam','mae', metrics=['mse','mae'])
checkpoint = MergeMetrics()
m.fit(X, [y1,y2], epochs=10, callbacks=[checkpoint])
打印输出为:
loss: ... - y1_mse: 0.2227 - y1_mae: 0.3884 - y2_mse: 0.1163 - y2_mae: 0.2805 - merge_mse: 0.1695 - merge_mae: 0.3345