如何在Tensor Flow 2.0中的Conv2D图层中指定输入形状

斯塔克2022

我正在建立一个图像分类器模型,该模型使用CNN对手写数字MNIST 28x28灰度图像进行分类这是我的图层定义

    model = keras.Sequential()

model.add(keras.layers.Conv2D(64,(3,3),activation='relu',input_shape=(28,28,1)))
model.add(keras.layers.MaxPool2D((2,2)))
model.add(keras.layers.Conv2D(64,(3,3),activation='relu'))
model.add(keras.layers.MaxPool2D((2,2)))

model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(200,activation='relu'))
model.add(keras.layers.Dense(10,activation='softmax'))

但是当我拟合模型时出现此错误

 ValueError: Input 0 of layer sequential_6 is incompatible with the layer: : expected min_ndim=4, found ndim=3. Full shape received: [32, 28, 28]

我也想知道为什么我们应该在Conv2D图层的input_shape中提到1.图像的形状是28x28,但我们应该在那里提到1。

肾上腺素

应该起作用的最小更改是更改行:

model.add(keras.layers.Conv2D(64,(3,3),activation='relu',input_shape=(28,28,1)))

为此,删除1

model.add(keras.layers.Conv2D(64,(3,3),activation='relu',input_shape=(28,28)))

出现此错误的原因是您的输入图像为28x28,并且您投放到网络中的批量大小为32张图像,因此数组的尺寸为[32,28,28]。不幸的是,我看不到如何将输入反馈到网络。但是您当前的代码期望的是一个尺寸为[32,28,28,1]的数组。如果那是您可以操纵的numpy数组,那么只需将reshape()其设置为这样的维度就可以解决问题。

我上面建议的是反过来做,要求网络期望尺寸为[28,28]的2D数组而不是尺寸为[28,28,1]的3D数组的每个图像

更新:

您提供了以下代码更改来使其起作用:

 train_image=train_image.reshape(60000, 28, 28, 1) 
 train_image=train_image / 255.0
 test_image = test_image.reshape(10000, 28, 28, 1) 
 test_image=test_image/255.0

这是因为您的输入图像位于一个巨大的numpy数组中,并且您直接将其与模型拟合。模型拟合功能将从其数组的第一个维度中选择“张量”,并为每个训练步骤创建一批。批处理大小为32,因此它将隐式创建一个形状数组(32、28、28、1)并将其向下传递到各层。仅从原始数组复制第二到第四维。

reshape()命令是改变阵列的维数。重整前的原始数组为(60000,28,28),如果将其作为单个数字序列进行布局,则将有6000x28x28个浮点数。要做的reshape()是拾取这些数字并将它们填充到(60000,28,28,1)数组中,该数组期望60000x28x28x1个数字,因此可以准确地填充它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Tensor Flow 的再训练示例中打印预测概率?

来自分类Dev

如何在多个图像输入中使用Conv2D?

来自分类Dev

在PyTorch中如何实现Conv2d的算法

来自分类Dev

如何在pytorch中实现Conv2d的棋盘大步?

来自分类Dev

Keras:为什么Conv2D图层的输出大小与要素图的预期形状不匹配?

来自分类Dev

Python 3:如何在Tensor Flow 2.0中评估亚当梯度?我想替换我的实现

来自分类Dev

如何在keras中将Conv1D的输出与Conv2D的输出合并

来自分类Dev

谁能告诉我这是怎么回事?图层conv2d_21的输入0与图层不兼容:输入形状的预期轴-1的值为1

来自分类Dev

输入形状为 [?,1,1,5], [1,6,5,5] 的 'conv1d_2/convolution/Conv2D'(操作:'Conv2D')从 1 中减去 6 导致的负尺寸大小

来自分类Dev

如何快速集成Dialogue flow V2?

来自分类Dev

如何在Vaadin Flow中打印?

来自分类Dev

如何在Flow中禁用警告?

来自分类Dev

在Tensor Flow中实施暹罗网络

来自分类Dev

如何在特定大小的conv2d层中使用Padding

来自分类Dev

如何在.map中访问Tensor形状?

来自分类Dev

Kotlin Flow on BackpressureDrop RxJava2模拟

来自分类Dev

我可以将Conv2D和LeakyReLU合并到一个图层中吗?

来自分类Dev

model.fit提供ValueError:检查输入时出错:预期的conv2d获得了形状为()的数组

来自分类Dev

输入形状为[?,1,10000,80],[3,3,80,16]的'conv2d_1 / convolution'(op:'Conv2D')从1中减去3引起的负尺寸大小

来自分类Dev

如何使用张量流/ keras中的预定内核列表初始化Conv2D层?

来自分类Dev

如何在Calligra Flow中拖动模具中的模具图像?

来自分类Dev

如何在Calligra Flow中拖动模具中的模具图像?

来自分类Dev

如何在 Microsoft Flow 中获取 JSON 中的对象键

来自分类Dev

如何在PyTorch Tensor中交换值?

来自分类Dev

您如何在最新的Akka(2.4.6)中限制Flow?

来自分类Dev

如何在SourceTree中重置git-flow配置?

来自分类Dev

如何在ng-flow中设置单个文件

来自分类Dev

如何在MS Flow或Logic Apps中获得配色方案?

来自分类Dev

如何在简单的git flow中合并修补程序分支

Related 相关文章

  1. 1

    如何在 Tensor Flow 的再训练示例中打印预测概率?

  2. 2

    如何在多个图像输入中使用Conv2D?

  3. 3

    在PyTorch中如何实现Conv2d的算法

  4. 4

    如何在pytorch中实现Conv2d的棋盘大步?

  5. 5

    Keras:为什么Conv2D图层的输出大小与要素图的预期形状不匹配?

  6. 6

    Python 3:如何在Tensor Flow 2.0中评估亚当梯度?我想替换我的实现

  7. 7

    如何在keras中将Conv1D的输出与Conv2D的输出合并

  8. 8

    谁能告诉我这是怎么回事?图层conv2d_21的输入0与图层不兼容:输入形状的预期轴-1的值为1

  9. 9

    输入形状为 [?,1,1,5], [1,6,5,5] 的 'conv1d_2/convolution/Conv2D'(操作:'Conv2D')从 1 中减去 6 导致的负尺寸大小

  10. 10

    如何快速集成Dialogue flow V2?

  11. 11

    如何在Vaadin Flow中打印?

  12. 12

    如何在Flow中禁用警告?

  13. 13

    在Tensor Flow中实施暹罗网络

  14. 14

    如何在特定大小的conv2d层中使用Padding

  15. 15

    如何在.map中访问Tensor形状?

  16. 16

    Kotlin Flow on BackpressureDrop RxJava2模拟

  17. 17

    我可以将Conv2D和LeakyReLU合并到一个图层中吗?

  18. 18

    model.fit提供ValueError:检查输入时出错:预期的conv2d获得了形状为()的数组

  19. 19

    输入形状为[?,1,10000,80],[3,3,80,16]的'conv2d_1 / convolution'(op:'Conv2D')从1中减去3引起的负尺寸大小

  20. 20

    如何使用张量流/ keras中的预定内核列表初始化Conv2D层?

  21. 21

    如何在Calligra Flow中拖动模具中的模具图像?

  22. 22

    如何在Calligra Flow中拖动模具中的模具图像?

  23. 23

    如何在 Microsoft Flow 中获取 JSON 中的对象键

  24. 24

    如何在PyTorch Tensor中交换值?

  25. 25

    您如何在最新的Akka(2.4.6)中限制Flow?

  26. 26

    如何在SourceTree中重置git-flow配置?

  27. 27

    如何在ng-flow中设置单个文件

  28. 28

    如何在MS Flow或Logic Apps中获得配色方案?

  29. 29

    如何在简单的git flow中合并修补程序分支

热门标签

归档