看起来是矩阵不匹配。
原因:
原本网络是以48*48的图片大小作为输入,后面resize成224*224的大小进行输入,所以网络那边参数也要改一下。
解决:
为了确定哪一层网络层出现问题,那就debug一步一步走,后面发现是第一层全连接出现问题。那就打印一下输入全连接层是feature map的大小:
self.fc1 = nn.Linear(2000, 500) # 输入通道数是2000,输出通道数是500
……
(此处省略多行代码)
……
print(out.size()) # 这里打印看下输入全连接层前feature map的大小
out = self.fc1(out)
#打印结果为:torch.Size([256, 233280])。
那就简单了,修改下全连接层的声明
self.fc1 = nn.Linear(233280, 500) # 输入通道数改成233280,输出通道数是500
然后就通过了。