ModelCheckpoint от keras не работает

8

Я пытаюсь обучить модель в кератах и ​​использую ModelCheckpoint, чтобы сохранить лучшую модель в соответствии с отслеживаемой метрикой валидации (в моем случае это индекс Жакара ).

В то время как я вижу улучшение модели в тензорной доске, когда я пытаюсь загрузить веса и оценить модель, она не работает вообще. Кроме того, по метке времени в файле, где должны храниться веса, я могу сказать, что они вообще не сохраняются. Временная метка примерно соответствует времени, когда я начал тренироваться.

Кто-нибудь сталкивался с такой проблемой раньше?

ILM91
источник

Ответы:

7

Вы используете ModelCheckpointего параметры по умолчанию (кроме monitor)?

ModelCheckpointимеет параметр с именем, modeкоторый указывает тип метрики, которая будет использоваться. modeможет принимать 3 значения 'min' 'max'и 'auto'(по умолчанию):

  • min: означает, что вы хотите минимизировать показатель (например, функцию потерь).
  • max: означает, что вы хотите максимизировать показатель (например, точность).
  • auto: пытается понять, что делать самостоятельно. Если вы посмотрите на код , он проверяет, содержит 'acc'ли имя метрики или начинается ли он с 'fmeasure'. Если да, он устанавливает режим max, если нет, то устанавливает его min.

В вашем случае вы отслеживаете индекс jaccard, который является метрикой, которую вы хотите максимизировать, поэтому вы хотите установить режим max. Обычно, потому что «jaccard» содержит строку «acc», даже если установлен режим, autoон должен работать нормально.

Однако, если вы назвали свою метрику как-то произвольно (например my_metric), режим по умолчанию будет установлен на min, что означает, что он будет хранить веса, которые достигают наименьшей производительности по вашей метрике, которые должны быть весами первой эпохи.

Предложение : в следующий раз попробуйте, mode='max'чтобы быть уверенным.

MzdR
источник
Да ты прав. Я назвал свою метрику, intersection_over_unionи, вероятно, она хранила веса с наименьшим счетом, которые были с первой эпохи. Это имеет большой смысл. Спасибо!
ILM91
Пожалуйста. Рад, что смог помочь!
MzdR