ValueError:检查输入时出错:预期密集\u 1 \u输入有2个维度,但得到了形状为(60000,28,28)的数组

2024-04-19 20:40:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着训练我的深层神经网络来识别手写数字,但是我不断地得到标题前面提到的错误,我不知道为什么。你知道吗

我试过重塑“x火车”和“y火车”,但没有改变结果。 模型.add(Flatten())也不起作用。你知道吗

import matplotlib.pyplot as plt
import keras
from keras import optimizers
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten
from keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()

train_images = x_train.reshape(60000, 784)
test_images = x_test.reshape(10000, 784)
train_images = train_images.astype('float32')
test_images = test_images.astype('float32')
train_images /= 255
test_images /= 255

train_labels = keras.utils.to_categorical(y_train, 10)
test_labels = keras.utils.to_categorical(y_test, 10)

model = Sequential()

model.add(Dense(512, activation="relu", input_shape=(784,)))

for x in range (0, 10):
    model.add(Dense(512, activation="relu"))

model.add(Dense(10, activation="softmax"))
model.summary()

model.compile(optimizer="rmsprop", loss="binary_crossentropy", metrics=['accuracy'])

model.fit(x_train, y_train, epochs=100, verbose=2, validation_split=0.0, shuffle=True, initial_epoch=0, validation_data=(train_images, train_labels), steps_per_epoch=10, validation_steps=10, validation_freq=1)

我希望培训开始,但我得到了这个错误:ValueError:检查输入时出错:期望密集的\u 1 \u输入有2个维度,但得到了形状为(60000,28,28)的数组。你知道吗


Tags: fromtestimportaddlabelsmodel错误train
2条回答

你通过的训练数据集没有重塑它。你知道吗

而不是这一行:

model.fit(x_train, y_train, epochs=100, verbose=2, validation_split=0.0, shuffle=True, initial_epoch=0, validation_data=(train_images, train_labels), steps_per_epoch=10, validation_steps=10, validation_freq=1)

使用此选项:

model.fit(train_images, train_labels, epochs=100, verbose=2, validation_split=0.0, shuffle=True, initial_epoch=0, validation_data=(train_images, train_labels), steps_per_epoch=10, validation_steps=10)

您需要将数据集从shape(n,width,height)转换为(n,depth,width,height)。你知道吗

X_train = X_train.reshape(X_train.shape[0], 1, 28, 28) X_test = X_test.reshape(X_test.shape[0], 1, 28, 28)

相关问题 更多 >