构建CNN时遇RuntimeError:输入通道数与权重不匹配求协助
问题原因与解决方法
你的卷积层参数和输入通道数不匹配:
- 错误里的卷积核权重尺寸是
[20, 1, 5, 5],说明你定义卷积层时把输入通道数(in_channels)设成了1,但实际输入的是3通道数据(比如RGB图像,shape是[25, 3, 32, 32]),两者通道数对不上才报的错。
解决办法二选一:
- 调整卷积层参数:把卷积层的
in_channels改成3,比如原来的代码如果是:
改成:nn.Conv2d(in_channels=1, out_channels=20, kernel_size=5)nn.Conv2d(in_channels=3, out_channels=20, kernel_size=5) - 转换输入通道数:如果你本来就想用单通道灰度图训练,就把输入的3通道数据转成1通道,比如用:
input = input.mean(dim=1, keepdim=True)
内容的提问来源于stack exchange,提问作者li yiting
相关产品推荐
相关产品推荐

