pytorch 对于常用的计算机视觉模型(例如vgg、resnet等),是否存在实际的最小输入图像尺寸?

qxgroojn  于 2022-12-26  发布在  其他
关注(0)|答案(2)|浏览(259)

根据用于迁移学习的预先训练的计算机视觉模型(例如,here)的文档,输入图像应该以“形状的3通道RGB图像(3 x H x W)的迷你批(mini-batch)”的形式出现,其中H和W预计至少为224
然而,当在高度和宽度小于预期(例如,小于224)的3通道图像上运行迁移学习实验时,网络通常平稳地运行并且经常获得不错的性能。
因此,在我看来,“最低高度和宽度”似乎是一种惯例,而不是一个关键参数。我是否遗漏了什么?

klr1opcd

klr1opcd1#

与网络最后一个卷积层的感受野相对应的输入大小是有限制的。直观地说,您可以观察到空间维度随着网络的前进而减小。至少对于旨在从输入图像中提取特征嵌入的特征提取器CNNs是这样的。这是大多数预训练模型,如香草VGG、和ResNets网络不保留空间维度。如果卷积层的输入小于内核大小(即使填充),那么您将无法执行该操作。

yptwkmov

yptwkmov2#

TLDR:自适应池化层
例如,标准的resnet 50模型只接受193-225范围内的输入,这是由于架构和向下缩放层(见下文)。默认pytorch模型工作的唯一原因是它使用了自适应池层,允许不限制输入大小。所以它会工作,但你应该准备好性能下降和其他有趣的事情:)

希望对您有用:

  1. https://discuss.pytorch.org/t/how-can-torchvison-models-deal-with-image-whose-size-is-not-224-224/51077/3
  2. What is Adaptive average pooling and How does it work?
  3. https://pytorch.org/docs/stable/generated/torch.nn.AdaptiveAvgPool2d.html
  4. https://github.com/pytorch/vision/blob/c187c2b12d86c3909e59a40dbe49555d85b98703/torchvision/models/resnet.py#L118
  5. https://github.com/pytorch/vision/blob/c187c2b12d86c3909e59a40dbe49555d85b98703/torchvision/models/resnet.py#L151
  6. https://developpaper.com/pytorch-implementation-examples-of-resnet50-resnet101-and-resnet152/

相关问题