3

私はkerasを使用してモデルを構築し、最適化コードとその他すべてをtensorflowで記述しています。DenseConv2Dなどの非常に単純なレイヤーを使用していたときは、すべてが簡単でした。しかし、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モデルをトレーニングするにはどうすればよいですか?

4

1 に答える 1