答案 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])
一个平均池,该池仅输出一个要素,而与输入要素图的空间尺寸无关。