如何修复没有验证准确性?
How to fix no validation accuracy?
我正在研究神经网络,我最近一直在训练它,它在训练数据上的准确率约为 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))
我得到的结果如下所示:
Epoch 1/5
167/167 [==============================] - 1266s 8s/step - loss: 6.4154 - accuracy: 0.9262 - val_loss: 0.0054 - val_accuracy: 0.0000e+00
我已经尝试更改几乎所有的超参数并更改模型的架构,但我一直得到类似的结果。这跟数据有关系吗?我使用的数据是一个 3d NumPy 数组,其中包含来自一堆图像的像素数据。如有任何帮助,我们将不胜感激。
您需要使用 activation='sigmoid'
和 optimizers.RMSprop(lr=1e-4)
进行二元分类。
我正在研究神经网络,我最近一直在训练它,它在训练数据上的准确率约为 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))
我得到的结果如下所示:
Epoch 1/5 167/167 [==============================] - 1266s 8s/step - loss: 6.4154 - accuracy: 0.9262 - val_loss: 0.0054 - val_accuracy: 0.0000e+00
我已经尝试更改几乎所有的超参数并更改模型的架构,但我一直得到类似的结果。这跟数据有关系吗?我使用的数据是一个 3d NumPy 数组,其中包含来自一堆图像的像素数据。如有任何帮助,我们将不胜感激。
您需要使用 activation='sigmoid'
和 optimizers.RMSprop(lr=1e-4)
进行二元分类。