您的代码对resnet进行了更改:您更改了通道数量、每个“级别”的瓶颈数量,并完全删除了一个“级别”。其结果是,该特征的尺寸映射你有在端部的layer3
是不64:你有一个较大的空间维度比您的预期通过nn.AvgPool2d(8)
。您收到的错误消息实际上告诉您输出的level3
形状为64
x 56
x56
并且在使用内核和步幅 8 进行平均池化后,您将获得64
x 7
x 7
=3136
维特征向量,而不是您期望的 64。
你能做什么?
与“标准”resnet 不同的是,您从 stride 中删除了 ,conv1
并且在conv1
. 此外,您删除layer4
其中也有一个大步。因此,您可以向网络添加池化以减少 的空间维度layer3
。
或者,您可以替换nn.AvgPool(8)
为nn.AdaptiveAvgPool2d([1, 1])
仅输出一个特征的平均池,而不管输入特征图的空间维度如何。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句