对的,这是可能的。
如文档中所述定义自定义指标:
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']
将指标名称传递给ModelCheckpoint
通过monitor
。如果您希望在验证中计算指标,请使用val_
prefix.
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'
对于自定义指标。明白为什么here https://github.com/fchollet/keras/blob/master/keras/callbacks.py#L366-L378.
我为什么要回答我自己的问题?查看this https://stackoverflow.blog/2011/07/01/its-ok-to-ask-and-answer-your-own-questions/.