Вы используете 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'
чтобы быть уверенным.
intersection_over_union
и, вероятно, она хранила веса с наименьшим счетом, которые были с первой эпохи. Это имеет большой смысл. Спасибо!