Модель поезда Keras со слоем BatchNorm с тензорным потоком

Я использую keras для построения модели и пишу оптимизирующие коды и все остальные в тензорном потоке. Когда я использовал довольно простые слои, такие как Dense или Conv2D, все было просто. Но добавление слоя BatchNormalization в мою модель keras усложняет задачу.

Поскольку слой BatchNormalization ведет себя по-разному на этапе обучения и на этапе тестирования, я понял, что мне нужно K.learning_phase():True в моем feed_dict. Но следующий код не работает хорошо. Он работает без ошибок, но производительность модели не улучшается.

import keras.backend as K
...
x_train, y_train = get_data()
sess.run(train_op, feed_dict={x:x_train, y:y_train, K.learning_phase():True})

Когда я пробовал тренировать модель керас с функцией подгонки кераса, она работала хорошо.

Что я должен сделать, чтобы обучить модель keras со слоем BatchNormalization в тензорном потоке?

1 ответ

Решение

На самом деле я продублировал этот вопрос, который не видел.

Я нашел ответ здесь, он просто заключается в передаче специального аргумента вызову слоя BatchNormalization

Другие вопросы по тегам