Мониторинг счета F1 (или пользовательской метрики в целом) в обратном вызове keras - PullRequest
0 голосов
/ 13 декабря 2018

Keras 2.0 убрал счет Ф1, но я бы хотел следить за его значением.Я использую последовательную модель для обучения нейронной сети.

Я определил функцию, как предложено здесь Как вычислить макрос F1 в Керасе? .

Эта функция прекрасно работает, только если она используется внутри model.compile.Таким образом, я вижу его ценность на каждом этапе.Проблема в том, что я не хочу просто видеть его значение, но я бы хотел, чтобы мои тренировки вели себя по-разному в соответствии с их значением, используя обратные вызовы Keras.

Если я пытаюсь вставить свою собственную метрику в обратные вызовы, я получаю эту ошибку:

'объект функции не повторяется'

знаете, как определить функцию так, чтобы ее можно было использовать в качестве аргумента в обратных вызовах?

1 Ответ

0 голосов
/ 13 декабря 2018

Обратный вызов Keras позволит нам получить модель в другой период, основываясь на метрике, которую мы отслеживаем.Это не повлияет на процедуру обучения модели.

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

Точность, отзыв или f1-оценка не являются дифференцируемыми функциями.Следовательно, мы не можем использовать это как функцию потерь для обучения модели.

Может быть, если вы хотите настроить свой гиперпараметр (например, скорость обучения, вес класса) для улучшения оценки f1, то вы можете сделать это.

Для настройки гиперпараметров вы можете использовать hyperopt , руководства

...