我想使用keras modelcheckpoint回调监视多个参数(我有一个多任务网络(。只需一个回调吗?还是我需要在许多回调中进行此操作?
ckechpoint创建:
checkpointer = ModelCheckpoint(filepath='checkpoints/weights-{epoch:02d}.hdf5', monitor='val_O1_categorical_accuracy' , verbose=1, save_best_only=True, mode='max')
我要监视的第二个参数: val_O2_categorical_accuracy
在列表中执行此操作将不起作用。即
checkpointer = ModelCheckpoint(filepath='checkpoints/weights-{epoch:02d}.hdf5', monitor=['val_O1_categorical_accuracy','val_O2_categorical_accuracy'] , verbose=1, save_best_only=True, mode='max')
typeerror:不可用的类型:'list'
我恐怕您必须在不同的情况下进行。考虑一下这里发生的事情 -
checkpointer = ModelCheckpoint(filepath='checkpoints/weights-{epoch:02d}.hdf5', monitor='val_O1_categorical_accuracy' , verbose=1, save_best_only=True, mode='max')
当您通过监视val_O1_categorical_accuracy
保存模型时,这就是伪代码中的操作 -
for each epoch:
check the val_O1_categorical_accuracy after updating weights
if this metric is better in this epoch than the previous ones:
save the model
else
pass
因此,真正指定多个 monitor
的范围不超出范围。在这种情况下,它必须是一个/或选择,因为基于monitor
公制,仅在其他冲突模型中只有一个模型可以是最好的模型。