我是tensorflow的初学者。我刚刚尝试为mnist数据安装一个简单的LeNet-5。
我的训练和测试数据是第一次以Numpy格式。即(60000,28,28)。然后我把我的模型设置如下。
model_LeNet5 = Sequential([
layers.Conv2D(6, kernel_size=3, strides=1, input_shape=(28, 28, 1)),
layers.MaxPooling2D(pool_size=2,strides=2),
layers.ReLU(),
layers.Conv2D(16,kernel_size=3,strides=1),
layers.MaxPooling2D(pool_size=2,strides=2),
layers.ReLU(),
layers.Flatten(),
layers.Dense(120, activation='relu'),
layers.Dense(84, activation='relu'),
layers.Dense(10)
])我可以理解,当我将input_shape设置为(28,28)或train_images.shape1:时,我获得了成功,但我无法理解input_shape = (28,28,1)也是工作的(如上面的代码所示)。
数据的形状和输入大小的设置似乎不一致(即60万、28、28和28、28、1)。另外,广播规则不能将60万、28、28和28、28、1连接起来。谢谢任何解释input_shape机制的人。
发布于 2022-02-09 10:11:46
单个灰度图像可以用二维(2D) NumPy阵列或张量表示.由于灰度图像中只有一个通道,所以我们不需要额外的维度来表示颜色通道。这两个维度表示图像的高度和宽度。

一批3幅灰度图像可以用三维NumPy阵列或张量表示。在这里,我们需要一个额外的维度来表示图像的数量。

有关更多信息,请参阅本文在数据科学上的内容。
https://stackoverflow.com/questions/71047310
复制相似问题