【问题标题】:ValueError showing up while using tensorflow's keras使用 tensorflow 的 keras 时出现 ValueError
【发布时间】:2020-09-24 02:37:08
【问题描述】:

我是机器学习的新手,正在尝试使用 keras 的简单程序。当我运行以下代码时,我收到一条错误消息,提示“ValueError:层顺序的输入 0 与层不兼容:输入形状的预期轴 -1 具有值 784,但接收到形状为 [32、28、28] 的输入” .有人可以帮我解决这个问题吗?我正在尝试跟随这个视频:https://www.youtube.com/watch?v=tjsHSIG8I08,但它似乎不起作用。提前致谢!

import tensorflow as tf
import numpy as np

(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()

model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(512, activation=tf.nn.relu, input_shape=(784,)))
model.add(tf.keras.layers.Dense(256, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))

model.compile(loss='categorical_crossentropy', optimizer='rmsprop')

model.fit(train_images, train_labels, epochs=5)

loss, accuracy = model.evaluate(test_images, test_labels)
print('Accuracy', accuracy)

scores = model.predict(test_images[0:1])
print(np.argmax(scores))

【问题讨论】:

    标签: tensorflow keras tensorflow2.0 valueerror


    【解决方案1】:

    问题来自input_shape=(784,)。首先,您需要了解输入维度的工作原理。输入数据必须遵循此维度(样本数,输入维度),因此在您的情况下,使用 (32, 28, 28) 这是一个 (28 X 28) 的 mnist 数据集维度,样本数等于 32。因此,您必须更改为input_shape=(28,28),然后您就可以开始了。

    【讨论】:

    • 尝试将 (28, 28) 替换为 (32, 28, 28)
    猜你喜欢
    • 2022-10-14
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多