gpt4 book ai didi

python - 如何解决此错误 : expected flatten_input to have 3 dimensions, 但得到形状为 (1, 28, 28, 3) 的数组?

转载 作者:太空宇宙 更新时间:2023-11-04 01:58:22 24 4
gpt4 key购买 nike

我正尝试使用 tensorflow 为我的学校项目让我的代码识别数字。但我一直收到这个错误。有人可以帮我吗?非常感谢!

尝试了展平、改变大小等但没有成功...

这是我的代码:

import tensorflow as tf
mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([

tf.keras.layers.Flatten(input_shape=(28,28)),
tf.keras.layers.Dense(512, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])

model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])

model.fit(x_train, y_train, epochs=1)
model.evaluate(x_test, y_test)
# Part 3 - Making new predictions
import numpy as np
from keras.preprocessing import image
import keras
test_image = image.load_img('Number 8.jpg', target_size=(28, 28))
test_image = image.img_to_array(test_image)
test_image = np.expand_dims(test_image, axis=0)
result = model.predict(test_image)
print(np.argmax(result[0]))

应该是一个3的数组

最佳答案

我觉得是从这条线传来的

tf.keras.layers.Flatten(input_shape=(28,28)),

您可以将其替换为

tf.keras.layers.Flatten()

即使您的图像是 (28,28),训练时也会有一个批处理维度 [batch_size, 28,28]。由于您没有在 model.fit 中传递批量大小,因此使用默认值。

关于python - 如何解决此错误 : expected flatten_input to have 3 dimensions, 但得到形状为 (1, 28, 28, 3) 的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56280103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com