问题
I used python 3 and when i insert transform random crop size 224 it gives miss match error.
here my code
what did i wrong ?
回答1:
Your code makes variations on resnet: you changed the number of channels, the number of bottlenecks at each "level", and you removed a "level" entirely. As a result, the dimension of the feature map you have at the end of layer3
is not 64: you have a larger spatial dimension than you anticipated by the nn.AvgPool2d(8). The error message you got actually tells you that the output of level3
is of shape 64
x56
x56
and after avg pooling with kernel and stride 8 you have 64
x7
x7
=3136
dimensional feature vector, instead of only 64 you are expecting.
What can you do?
As opposed to "standard" resnet, you removed stride from conv1
and you do not have max pool after conv1
. Moreover, you removed layer4
which also have a stride. Therefore, You can add pooling to your net to reduce the spatial dimensions of layer3
.
Alternatively, you can replace nn.AvgPool(8)
with nn.AdaptiveAvgPool2d([1, 1]) an avg pool that outputs only one feature regardless of the spatial dimensions of the input feature map.
来源:https://stackoverflow.com/questions/54976741/runtimeerror-size-mismatch-m1-4-x-3136-m2-64-x-5-at-c-a-w-1-s-tmp-cond