#tensorflow #tensorflow2.0
Вопрос:
Я пытаюсь использовать Efficientnet для обнаружения некоторых объектов и загружаю его контрольную точку перед предоставлением некоторых изображений. Если я ставлю tf.keras.backend.set_learning_phase(True)
перед тем, как делать прогнозы, это приводит к плохим прогнозам. При этом я имею в виду, что у него есть только 2 обнаружения с оценкой выше порога 0,5 (на изображениях около 10 человек). Однако, если у меня есть tf.keras.backend.set_learning_phase(False)
и я делаю прогнозы, у него гораздо больше обнаружений (около 8), а пороговое значение колеблется от 0,7 до 0,94. Почему это происходит на основе tf.keras.backend.set_learning_phase()
звонка?
Спасибо за любую помощь!
Ответ №1:
На самом деле это устаревшая функция в новых версиях. Некоторые уровни(BatchNorm — Отсев) ведут себя по-разному при обучении и тестировании.
tf.keras.backend.set_learning_phase(True)
Вы фактически оставляете их в режиме тренировки, чтобы они были активны. Вы хотите, чтобы они были отключены при составлении прогноза.
Для получения дополнительной информации проверьте источник.