KERAS ModelCheckpoint监视多个值



我想使用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公制,仅在其他冲突模型中只有一个模型可以是最好的模型。

最新更新