Ви працюєте ModelCheckpointза його типовими параметрами (крім того monitor)?
ModelCheckpointмає параметр, modeякий називається, який визначає тип метрики, яку слід використовувати. modeможе приймати 3 значення 'min' 'max'та 'auto'(що є типовим):
min: означає, що ви хочете мінімізувати показник (наприклад, функція втрати).
max: означає, що ви хочете досягти максимальної метрики (наприклад, точності).
auto: спроби зрозуміти, що робити самостійно. Якщо ви подивитеся на код , він перевіряє, чи містить ім'я метрики 'acc'чи він починається з 'fmeasure'. Якщо так, то він встановлює режим max, якщо ні, він встановлює його min.
У вашому випадку ви стежите за індексом жаккарда, який є показником, якого ви хочете максимально збільшити, тому хочете, щоб режим встановлений max. Зазвичай тому, що "жаккард" містить рядок "acc", навіть якщо встановлений для autoнього режим повинен працювати нормально.
Якщо ви назвали свою метрику чимось довільним (наприклад my_metric), режим за замовчуванням буде встановлено на min, це означає, що вона буде зберігати ваги, які досягають найменшої продуктивності у вашій метриці, яка повинна бути вагою першої епохи.
Пропозиція : наступного разу спробуйте, mode='max'щоб бути впевненим.
intersection_over_unionі це, мабуть, зберігало ваги з найнижчою оцінкою, які були з першої епохи. Це має багато сенсу. Дякую!