
看起来是矩阵不匹配。
原因:
原本网络是以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
然后就通过了。
本文介绍了一种在深度学习模型中遇到的矩阵尺寸不匹配问题及其解决方案。问题出现在从较小尺寸图片(48*48)调整到较大尺寸(224*224)时,导致全连接层的输入尺寸不符。通过逐步调试,发现了问题所在,并调整了全连接层的输入尺寸。
7179





