【问题标题】:RuntimeError: size mismatch, m1: [4 x 3136], m2: [64 x 5] at c:\a\w\1\s\tmp_conda_3.7_1RuntimeError:大小不匹配,m1:[4 x 3136],m2:[64 x 5] 在 c:\a\w\1\s\tmp_conda_3.7_1
【发布时间】:2019-07-25 09:09:47
【问题描述】:

我使用了 python 3,当我插入变换随机裁剪大小 224 时,它给出了未匹配错误。

here my code

我做错了什么?

【问题讨论】:

    标签: python-3.x image-processing computer-vision pytorch resnet


    【解决方案1】:

    您的代码对resnet 进行了修改:您更改了通道数、每个“级别”的瓶颈数,并且您完全删除了一个“级别”。因此,layer3 末尾的特征图维度不是 64:您的空间维度比nn.AvgPool2d(8) 预期的要大。您收到的错误消息实际上告诉您 level3 的输出形状为 64x56x56 并且在使用内核和步幅 8 进行 avg 池化后,您有 64x7x@987654332 @=3136 维特征向量,而不是您期望的只有 64 个。

    你能做什么?
    与“标准” resnet 不同,您从conv1 中删除了stride,并且在conv1 之后没有最大池。此外,您删除了layer4,它也有很大的进步。因此,您可以在网络中添加池化以减少layer3 的空间维度。
    或者,您可以将 nn.AvgPool(8) 替换为 nn.AdaptiveAvgPool2d([1, 1]) 一个 avg 池,无论输入特征图的空间维度如何,它只输出一个特征。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 2020-06-11
      相关资源
      最近更新 更多