Keras ModelCheckpoint отслеживает несколько значений

Я хочу использовать обратный вызов Keras ModelCheckpoint для мониторинга нескольких параметров (у меня многозадачная сеть). Возможно ли это только с одним обратным вызовом? Или мне нужно сделать это во многих обратных вызовах??

Создание контрольной точки:

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: unhashable type: 'list'


person Lilo    schedule 25.02.2018    source источник


Ответы (1)


Боюсь, вам придется делать это в отдельных случаях. Подумайте о том, что здесь происходит -

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 только одна модель среди других конфликтующих моделей может быть лучшей.

person Vivek Kalyanarangan    schedule 25.02.2018
comment
Хорошо, спасибо, думаю, я добавлю вторую метрику, которая вычисляет среднее значение двух потерь, - person Lilo; 25.02.2018
comment
да, это хороший звонок. Я никогда не играл с параметром monitor. Может быть, он поддерживает callable. В любом случае, если ваш вопрос решен, отметьте его как ответ, чтобы другие, ищущие что-то подобное, могли найти помощь. В противном случае опубликуйте ответ самостоятельно, если вы разобрались, и отметьте его. - person Vivek Kalyanarangan; 25.02.2018