【发布时间】:2023-01-01 03:15:08
【问题描述】:
我的代码是
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28, 5)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(2)])
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.fit(X_train, train_labels, epochs=10)
我的输出是
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
flatten (Flatten) (None, 3920) 0
dense (Dense) (None, 128) 501888
dense_1 (Dense) (None, 2) 258
=================================================================
Total params: 502,146
Trainable params: 502,146
Non-trainable params: 0
_________________________________________________________________
Epoch 1/10
219/219 [==============================] - 2s 3ms/step - loss: nan - accuracy: 0.0000e+00
Epoch 2/10
219/219 [==============================] - 1s 3ms/step - loss: nan - accuracy: 0.0000e+00
Epoch 3/10
219/219 [==============================] - 1s 3ms/step - loss: nan - accuracy: 0.0000e+00
Epoch 4/10
219/219 [==============================] - 1s 3ms/step - loss: nan - accuracy: 0.0000e+00
Epoch 5/10
219/219 [==============================] - 1s 3ms/step - loss: nan - accuracy: 0.0000e+00
Epoch 6/10
219/219 [==============================] - 1s 3ms/step - loss: nan - accuracy: 0.0000e+00
Epoch 7/10
219/219 [==============================] - 1s 3ms/step - loss: nan - accuracy: 0.0000e+00
Epoch 8/10
219/219 [==============================] - 1s 3ms/step - loss: nan - accuracy: 0.0000e+00
Epoch 9/10
219/219 [==============================] - 1s 3ms/step - loss: nan - accuracy: 0.0000e+00
Epoch 10/10
219/219 [==============================] - 1s 3ms/step - loss: nan - accuracy: 0.0000e+00
<keras.callbacks.History at 0x7f8750280790>
为什么所有的训练准确率都会收敛到0?我的数据集是
print(X_train.shape)
print(X_test.shape)
(7000, 28, 28, 5)
(3000, 28, 28, 5)
print(train_labels.shape)
(7000, 1)
而且我尝试了其他模型,包括con2D模型或者logistic回归模型,但是accuracy总是0。这真的很奇怪。问题是否来自我的数据集?我的 train_labels 只包含 1s 和 (-1)s。
【问题讨论】:
-
标签应该是 0 和 1,而不是 -1。
标签: python tensorflow machine-learning keras neural-network