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)
我有这个形状的灰度图: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)