【问题标题】:Why are image sizes used in CNN usually certain numbers?为什么 CNN 中使用的图像大小通常是特定数字?
【发布时间】:2018-05-23 15:38:45
【问题描述】:

我对计算机视觉和深度学习还很陌生。我一直想知道为什么 CNN 模型(或其他模型)中输入的图像尺寸通常为特定数字,如 28*28、512*512、256*256。有什么理由吗?如果我以任意大小调整图像大小会发生什么?性能会受到影响吗?

【问题讨论】:

  • 设计中有全连接层还是所有层都是卷积?

标签: deep-learning computer-vision convolutional-neural-network


【解决方案1】:

大多数 CNN 架构使用包含多个 2 因子的图像大小。这样,您可以使用 MaxPooling 对图像进行多次下采样,而无需将分辨率四舍五入到最接近的整数。

512 -maxpool-> 256 -maxpool-> 128 -maxpool-> 64 -maxpool-> 32 ...

有时您会遇到这种方法不起作用的解决方案。例如,U-Net 使用 572*572 的分辨率,您可以在其中应用 MaxPooling 两次,直到您必须对分辨率进行四舍五入。这是因为 U-Net 使用未填充的卷积,其中一些图像在应用 MaxPooling 之前的卷积层期间被裁剪。

572 -conv-> 570 -conv-> 568 -maxpool-> 284 -conv-> 282 -conv-> 280 -maxpool-> 140 ...

我不知道有任何论文评估了 MaxPooling 期间舍入分辨率的影响,但我的直觉是它可能不会改善情况。就个人而言,我在给定输入分辨率的情况下使用了几次舍入,与最初裁剪部分图像相比没有发现差异。

【讨论】:

  • 感谢分享我们的经验。在 MaxPooling 期间舍入分辨率是什么意思?你的意思是你添加一个零行和/或列,以便在池化之前边长是偶数?你有没有参考过这方面的论文?
  • 是的,我就是这个意思。不,我没有参考资料。
【解决方案2】:

它是在网络设计期间定义的输入节点大小。训练也是使用该大小的图像完成的。因此,如果您想要一个一致的结果,您应该将输入图像的大小调整为相同的大小,并遵循训练中考虑的相同规范化规则。

如果您使用不同尺寸的图像,根据网络中使用的层,您可能会引发尺寸不匹配的异常,或者您将获得不同的输出尺寸。

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 2022-01-26
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 2014-12-07
    • 2013-07-23
    相关资源
    最近更新 更多