我正在研究一個神經網路,最近我一直在訓練它,它在訓練資料上的準確度約為 93%,在驗證資料上的準確度為 0%。我的第一個想法是過度擬合,但模型不會在訓練之間保存,我在第一個 Epoch 中得到了這些結果。我在 python 中使用 keras 和以下模型代碼:
model = Sequential(
[
Conv1D(320, 8, input_shape=(560, 560), activation="relu"),
# Conv1D(320, 8, activation="relu"),
# Conv1D(320, 8, activation="relu"),
# Dense(750, activation="relu"),
# Dropout(0.6),
Dense(1500, activation="relu"),
Dropout(0.6),
Dense(750, activation="relu"),
Dropout(0.6),
GlobalMaxPooling1D(keepdims=True),
Dense(1, activation='softmax')
]
)
model.compile(optimizer=Adam(learning_rate=0.00001), loss="binary_crossentropy", metrics=['accuracy'])
earlystopping = callbacks.EarlyStopping(monitor="val_accuracy",
mode="max", patience=2,
restore_best_weights=True)
model1 = model.fit(x=training_x, y=training_y, batch_size=150, epochs=5, shuffle=True, verbose=1, callbacks=[earlystopping], validation_data=(val_x, val_y))
我得到的結果是這樣的:
紀元 1/5 167/167 [==============================] - 1266s 8s/step - 損失:6.4154 - 準確度: 0.9262 - val_loss: 0.0054 - val_accuracy: 0.0000e 00
我已經嘗試更改幾乎所有的超引數并更改模型的架構,但我一直得到類似的結果。這和資料有關系嗎?我使用的資料是一個 3d NumPy 陣列,其中包含來自一堆影像的像素資料。這里的任何幫助將不勝感激。
uj5u.com熱心網友回復:
您需要使用activation='sigmoid'和optimizers.RMSprop(lr=1e-4)進行二元分類。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/370283.html
