Jeśli chcę używać funkcji BatchNormalization w Keras, czy muszę wywołać ją tylko raz na początku?Gdzie mogę wywołać funkcję BatchNormalization w Keras?
czytam tę dokumentację do niego: http://keras.io/layers/normalization/
nie widzę gdzie mam to nazwać. Poniżej jest mój kod próbuje go używać:
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)
Pytam bo jeśli uruchomić kod z drugiej linii w tym normalizacja partii i jeśli uruchomić kod bez drugiej linii mam podobne wyjść. Więc albo nie nazywam funkcji we właściwym miejscu, albo chyba nie robi to wielkiej różnicy.
FYI pozornie normalizacja wsadu działa lepiej w praktyce po funkcji aktywacji – Claudiu
Hi @ Claudiu, czy mógłbyś rozszerzyć ten FYI? ? Wydaje się, że jest to wprost sprzeczne z powyższą odpowiedzią: –
@benogorek: na pewno opieram się całkowicie na wynikach [tutaj] (https://github.com/ducha-aiki/caffenet-benchmark/blob/master/batchnorm .md) gdzie lepiej było umieścić normę wsadu po relu FWIW Nie odniosłem sukcesu stosując ją w taki czy inny sposób w sieci, którą wypróbowałem – Claudiu