【发布时间】:2023-10-04 01:10:01
【问题描述】:
我正在使用 keras 和 tensorflow 建立我的第一个神经网络。我将输入输入到一个形状数组 (60000, 28, 28) 中,但是当我尝试将其提供给模型时,我收到输入形状错误的错误。
我尝试了多种不同的输入形状,包括 (60000, 28, 28) (1, 28, 28) (28, 28) (28, 28, 1),但它们似乎都不起作用。
model = kr.Sequential()
model.add(InputLayer(input_shape=(60000, 28, 28)))
model.add(Dense(units=784, activation='relu'))
model.add(Dense(units=392, activation='relu'))
model.add(Dense(units=196, activation='relu'))
model.add(Dense(units=10, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='Adam', metrics=['accuracy'])
training = model.fit(x=images_array, y=labels_array, epochs=10, batch_size=256)
我希望它适用于输入形状 (60000, 28, 28),但我总是收到此错误:
ValueError:检查输入时出错:预期 input_1 有 4 尺寸,但得到了形状为 (60000, 28, 28) 的数组
编辑:
感谢所有回答的人。 cho_uc 答案确实有效,这就是我接受它的原因。 我应该在帖子中提到的是,我正在尝试构建一个仅包含 Dense 层的模型,因此我可以将其用作未来模型的基准。
我解决了输入层问题:
images_array = images_array.reshape(-1, 28 * 28)
model.add(InputLayer(input_shape=(784, )))
【问题讨论】:
标签: python python-3.x tensorflow keras mnist