RuntimeError:大小不匹配,m1:[4 x 3136],m2:[64 x 5],位于c:\ a \ w \ 1 \ s \ tmp_conda_3.7_1

时间:2019-03-04 04:42:26

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

我使用python 3,当我插入变换随机作物尺寸224时,会出现匹配失败的错误。

here my code

我怎么了?

1 个答案:

答案 0 :(得分:3)

您的代码在resnet上有所不同:您更改了通道数,每个“级别”上的瓶颈数量,并且完全删除了“级别”。结果,您在layer3末尾处的要素地图的尺寸​​为不是 64:您的空间尺寸比nn.AvgPool2d(8)所期望的要大。您收到的错误消息实际上告诉您level3的输出是64 x 56 x 56的形状,在使用内核平均池化并跨度为8后,您得到了{{ 1}} x {64 x 7 = 7维度特征向量,而不是您期望的只有64个。

你能做什么?
与“标准” resnet相反,您从3136删除了跨步,并且conv1之后没有最大池。此外,您删除了conv1,这也有很大的进步。因此,您可以在网络中添加池以减小layer4的空间尺寸。
另外,您可以将layer3替换为nn.AdaptiveAvgPool2d([1, 1])一个平均池,该池仅输出一个要素,而与输入要素图的空间尺寸无关。