RuntimeError: The size of tensor a (40) must match the size of tensor b (41) at non-singleton dimens

RuntimeError: The size of tensor a (40) must match the size of tensor b (41) at non-singleton dimension 3

此类还是维度问题,建议尝试以下几种解决方案:
1、
model.avg_pool = nn.AvgPool2d(kernel_size=1, stride=1, padding=0) model.last_linear = nn.Linear(465696, config.num_classes, bias=True)

一般出现此类问题时,池化层的kernel_size不是为1,因此首先将kernel_size=1;接着可能会提示维度不匹配的问题。
RuntimeError: size mismatch, m1: [1 x 465696], m2: [1056 x 1000] at /opt/conda/conda-bld/pytorch_1556653099582/work/aten/src/THC/generic/THCTensorMathBlas.cu:268
此时修改nn.Linear()中的第一个参数即可,即

model.last_linear = nn.Linear(465696, config.num_classes, bias=True)

2、将batch_size=1,可能是数据集不能整除batch_size。

3、输入图片的尺寸尝试使用224的整数倍,即n*224。

向IT工作者致敬,后丹之喜碧CatBrother欢迎吐槽:
后丹-喜碧CatBrother

你可能感兴趣的:(深度学习,match,tensor,non-singleton,dimension,RuntimeError)