私はkerasを使用してモデルを構築し、最適化コードとその他すべてをtensorflowで記述しています。DenseやConv2Dなどの非常に単純なレイヤーを使用していたときは、すべてが簡単でした。しかし、BatchNormalizationレイヤーを keras モデルに追加すると、問題が複雑になります。
BatchNormalizationレイヤーはトレーニング フェーズとテスト フェーズで動作が異なるため、 feed_dict に K.learning_phase():True が必要であることがわかりました。しかし、次のコードはうまく機能しません。エラーなしで実行されますが、モデルのパフォーマンスは向上していません。
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 fit関数でkeras モデルをトレーニングしてみたところ、うまくいきました。
tensorflowでBatchNormalizationレイヤーを使用してkerasモデルをトレーニングするにはどうすればよいですか?