根据此线程:https://datascience.stackexchange.com/questions/49109/loss-val-loss-are-decreasing-but-accuracies-are-the-same-in-lstm当我们在Keras
中训练神经网络时使用metrics='accuracy'
,在引擎盖下发生的是:
if metric in ('accuracy', 'acc'):
metric_fn = metrics_module.binary_accuracy
其中
def binary_accuracy(y_true, y_pred):
return K.mean(K.equal(y_true, K.round(y_pred)), axis=-1)
在我的模型中,我处理的是连续数据,对于这些数据,使用不同的评估函数会更适用。有可能将这个预定义的度量更改为自定义的度量吗?
我找到了答案。我们可以定义我们的度量如下:
def my_metric(y_true, y_pred):
...
然后按以下方式使用:
model.compile(optimizer='...', loss='...', metrics=[my_metric])