Фон
У меня проблема классификации по нескольким меткам с 5 метками (например, [1 0 1 1 0]
).Поэтому я хочу, чтобы моя модель улучшилась по таким показателям, как фиксированный возврат, точный вызов AUC или ROC AUC.
Нет смысла использовать функцию потерь (например, binary_crossentropy
), которая не имеет прямого отношениясвязанные с измерением производительности, я хочу оптимизировать.Поэтому я хочу использовать TensorFlow global_objectives.recall_at_precision_loss()
или аналогичный в качестве функции потерь.
Не метрика
Я не ищу реализации tf.metrics
.Я уже преуспел в этом: https://stackoverflow.com/a/50566908/3399066
Проблема
Я думаю, что мою проблему можно разделить на 2 проблемы:
- Как использовать
global_objectives.recall_at_precision_loss()
или - Как использовать его в модели Keras с бэкэндом TF?
Задача 1
Существует файл с именем loss_layers_example.py
на Страница глобальных целей GitHub (такая же, как указано выше) .Однако, поскольку у меня нет большого опыта работы с TF, я не очень понимаю, как его использовать.Кроме того, поиск в Google для TensorFlow recall_at_precision_loss example
или TensorFlow Global objectives example
не даст мне более ясного примера.
Как мне использовать global_objectives.recall_at_precision_loss()
в простом примере TF?
Задача 2
Будет ли что-то вроде (в Керасе): model.compile(loss = ??.recall_at_precision_loss, ...)
будет достаточно?Мое чувство говорит мне, что это более сложно, чем это, из-за использования глобальных переменных, используемых в loss_layers_example.py
.
Как использовать функции потерь, подобные global_objectives.recall_at_precision_loss()
в Керасе?