Keras で BatchNormalization 関数を使用したい場合、最初に一度だけ呼び出す必要がありますか?
私はそれについてこのドキュメントを読みました: http://keras.io/layers/normalization/
どこに電話すればいいのかわからない。以下は、それを使用しようとしている私のコードです:
model = Sequential()
keras.layers.normalization.BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None)
model.add(Dense(64, input_dim=14, init='uniform'))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(64, init='uniform'))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(2, init='uniform'))
model.add(Activation('softmax'))
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy', optimizer=sgd)
model.fit(X_train, y_train, nb_epoch=20, batch_size=16, show_accuracy=True, validation_split=0.2, verbose = 2)
バッチ正規化を含む 2 行目でコードを実行すると、2 行目なしでコードを実行すると、同様の出力が得られるためです。したがって、関数を適切な場所で呼び出していないか、それほど大きな違いはないと思います。