Во время перекрестной проверки данных обучения использование batchnorm значительно повышает производительность. Но (после переподготовки на весь набор тренировок) наличие слоя батнорма полностью разрушает обобщение модели до набора прочности. Это немного удивительно, и мне интересно, неправильно ли я выполняю предсказания теста.keras batchnorm имеет ужасные результаты теста
Обобщение без присутствующего слоя батнормора (недостаточно для целей моего проекта, но разумно для такой простой сети).
Я не могу поделиться своими данными, но кто-нибудь видит очевидную ошибку реализации? Есть ли флаг, который должен быть установлен в тестовый режим? Я не могу найти ответ в документах, и выпад (который также должен иметь разные поведенческие/тестовые действия) работает так, как ожидалось. Благодаря!
код:
from keras.callbacks import EarlyStopping
early_stopping = EarlyStopping(monitor='val_loss', patience=10)
from keras.callbacks import ModelCheckpoint
filepath="L1_batch1_weights.best.hdf5"
checkpoint = ModelCheckpoint(filepath, monitor='val_loss', verbose=1, save_best_only=True, mode='auto')
init = 'he_normal'
act = 'relu'
neurons1 = 80
dropout_rate = 0.5
model = Sequential()
model.add(Dropout(0.2, input_shape=(5000,)))
model.add(Dense(neurons1))
model.add(BatchNormalization())
model.add(Activation(act))
model.add(Dropout(dropout_rate))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer="adam", metrics=["accuracy"])
my_model = model.fit(X_train, y_train, batch_size=128, nb_epoch=150, validation_data =(X_test, y_test),callbacks=[early_stopping, checkpoint])
model.load_weights("L1_batch1_weights.best.hdf5")
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
print("Created model and loaded weights from file")
probs = model.predict_proba(X_test,batch_size=2925)
fpr, tpr, thresholds = roc_curve(y_test, probs)
Если вы читаете тег для пакетного файла, который вы увидите, что это о копировании файлов и т.д. в Windows. –
@Noodles, как ваш комментарий связан с вопросом? –
Я отредактировал ваш вопрос и удалил тег пакетного файла. Это язык сценария оболочки WINDOWS. Ничего общего с нейронными сетями. –