Использование «learning_phase» в keras для бэкэнда тензорного потока?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование «learning_phase» в keras для бэкэнда тензорного потока?

Сообщение Anonymous »

Я пытаюсь обучить сеть Resnet, используя бэкэнд keras в тензорном потоке. Словарь каналов для каждого пакетного обновления записывается как:

Код: Выделить всё

    feed_dict= {x:X_train[indices[start:end]], y:Y_train[indices[start:end]], keras.backend.learning_phase():1}
Я использую серверную часть Keras (

Код: Выделить всё

keras.backend.set_session(sess)
), потому что исходная сеть resnet определена с помощью keras. Поскольку модель содержит слои dropout и patch_norm, ей требуется этап обучения, чтобы различать обучение и тестирование.

Я заметил, что всякий раз, когда я устанавливаю keras.backend.learning_phase():1, точность обучения/тестирования модели вряд ли превышает 10%. Напротив, если фаза обучения не установлена, т. е. словарь каналов определяется как:

Код: Выделить всё

feed_dict= {x:X_train[indices[start:end]], y:Y_train[indices[start:end]]}
Тогда, как и ожидалось, точность модели продолжает расти с эпохами стандартным образом.

Буду признателен если кто-то разъяснит необходимо ли использовать этап обучения или что-то не так. Документация Keras 2.0, похоже, предлагает использовать этап обучения со слоями dropout и patch_norm.

Подробнее здесь: https://stackoverflow.com/questions/491 ... ow-backend
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»