input_shape 错误,预期有 4 个维度,但得到形状为 (73257, 32, 32) 的数组

Error with the input_shape expected to have 4 dimensions, but got array with shape (73257, 32, 32)

我有这个形状的灰度图:x_train_grey.shape = (73257, 32, 32)

我这样指定第一层:

Flatten(input_shape=(32,32,1)' 因为我没有通过 batch_size 并且灰度图像只有 1 个通道。但是我得到这个错误:

ValueError: Error when checking input: expected flatten_1_input to have 4 dimensions, but got an array with shape (73257, 32, 32)

我不明白哪里不对,请帮忙。我知道这个问题已经被问过很多次了,但我找不到解决方案。

干杯!

我也在学习这些东西,但我猜想“1”作为维度的条目数是不可能的。即使有可能,这也是一个开始。 “1”作为轴的大小对我来说没有意义。 还有其他人吗?

问题可能在于您将数据传递给模型的方式。如果您的输入形状是 (batch_size, 32, 32) 然后尝试这样的事情:

import tensorflow as tf

grey_scale_images = tf.random.normal((64, 32, 32))

model = tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(32,32,1)))

print(model(grey_scale_images).shape)
# (64, 1024)

更新:input_shape=(32,32,1)input_shape=(32,32) 都可以。这取决于您将数据输入模型的方式:

import tensorflow as tf

grey_scale_images = tf.random.normal((64, 32, 32))
Y = tf.random.normal((64, 1024))
model = tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(32, 32, 1)))
model.compile(loss='MSE')
model.fit(grey_scale_images, Y)