Как использовать метрику ложных срабатываний в Tensorflow 2.0?

В Tensorflow 2.0 я пытаюсь построить модель, которая классифицирует мои объекты на две категории: положительные и отрицательные.

Я хочу использовать показатели tf.keras.metrics.FalsePositives и tf.keras.metrics.FalseNegatives, чтобы увидеть, как модель улучшается с каждой эпохой. Обе эти метрики имеют утверждения, предусматривающие: [predictions must be >= 0] и [predictions must be <= 1].

Проблема в том, что неподготовленная модель может генерировать произвольное число в качестве прогноза. Но даже обученная модель может иногда давать результат немного выше 1 или немного ниже 0.

Есть ли способ отключить эти утверждения?

В качестве альтернативы, есть ли какая-либо подходящая функция активации, которая переводит выходные данные модели в диапазон [0, 1], не вызывая проблем со скоростью обучения?


person Volodymyr Frolov    schedule 04.10.2019    source источник
comment
Функция активации sigmoid является подходящей альтернативой, если выходы должны находиться в диапазоне [0, 1].   -  person stephen_mugisha    schedule 04.10.2019
comment
В моем случае техническая спецификация говорит, что я должен использовать tanh, поэтому я ограничен использованием только tanh.   -  person Volodymyr Frolov    schedule 04.10.2019
comment
@stephen_mugisha, но в целом это хорошая идея. Я могу добавить слой sigmoid только для проверки, а затем удалить его в процессе производства. Не могли бы вы добавить его в качестве ответа, чтобы я мог его принять.   -  person Volodymyr Frolov    schedule 04.10.2019
comment
конечно .. иногда вы также можете использовать другие функции активации в ваших скрытых слоях, но использовать сигмоид для выходного слоя, чтобы диапазон выходных значений находился между 0 и 1.   -  person stephen_mugisha    schedule 04.10.2019


Ответы (1)


Функция активации sigmoid является подходящей альтернативой, если выходы должны находиться в диапазоне [0, 1], так как он также находится в диапазоне 0 t0 1.

person stephen_mugisha    schedule 04.10.2019