0

我想使用 keras 用 MLP 实现 MNIST,一开始我只使用 2 层,但我得到了错误:“expected activation_9 有 3 个维度,但是得到了形状为 (60000, 10) 的数组”。我该如何解决它?**

input_shape = x_train[0].shape
model = Sequential()
model.add(Dense(64,activation='relu',input_shape=input_shape))
model.add(Dense(10))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
mdl=model.fit(x_train, y_train, epochs=5, batch_size=128)

**

4

2 回答 2

0

Dense 通常需要二维数据(批次,_)。因此,您需要使用 Flatten() 或更好地使用带有 Flatten() 的 Conv2D 层,这更适合图像分类任务。

于 2020-04-25T21:28:00.400 回答
0

作为您的第一层尝试使用:

tf.keras.layers.Flatten()

密集层需要一维数组,但图像是二维的。这一层将它们展平为 1d

于 2020-04-25T20:23:07.200 回答