两台深度学习环境的机器一台配备的是torchvision版本为0.3.0 另一台版本为0.2.1
同样的resnet代码出现了报错,显示FClayer的维度不匹配。
查找原因如下:
在0.2.1版本的resnet官方版本中对于avgpool Layer的定义如下:
self.avgpool = nn.AvgPool2d(7, stride=1)
k=7,s=1.
而0.3.0版本的定义如下:
self.avgpool = nn.AdaptiveAvgPool2d((1, 1))
采用了自适应的pooling,使得输出结果始终保持为(1,1)。因此FC的输入层始终都是2048,和输入图像大小无关。
因此在处理ResNet作为BackBone的时候注意你的torchvision版本 ,做出对应的改变即可。