如何将ModelCheckpoint与Keras中的自定义度量一起使用?
可以在回调中使用自定义吗?可以 定义文档中描述的自定义度量:如何将ModelCheckpoint与Keras中的自定义度量一起使用?,keras,deep-learning,Keras,Deep Learning,可以在回调中使用自定义吗?可以 定义文档中描述的自定义度量: import keras.backend as K def mean_pred(y_true, y_pred): return K.mean(y_pred) model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy', mean_pred]) 要检查所有可用指标
import keras.backend as K
def mean_pred(y_true, y_pred):
return K.mean(y_pred)
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy', mean_pred])
要检查所有可用指标,请执行以下操作:
print(model.metrics_names)
> ['loss', 'acc', 'mean_pred']
通过monitor
将度量名称传递给ModelCheckpoint
。如果要在验证中计算度量值,请使用val_979;
前缀
ModelCheckpoint(weights.{epoch:02d}-{val_mean_pred:.2f}.hdf5,
monitor='val_mean_pred',
save_best_only=True,
save_weights_only=True,
mode='max',
period=1)
不要将mode='auto'
用于自定义指标。明白为什么
为什么我要回答我自己的问题?检查。链接以了解故障原因。我很好奇,我知道为什么。当您构建自定义模型时,ModelCheckpoint不知道值是高还是低更好,所以mode='auto'不好。在我的例子中,我定义了F1度量,所以我需要告诉ModelCheckpoint值val_F1越高越好,所以mode='max'。