Neural network 初学者PyTorch-运行时错误:shape';[16400]';对于大小为9600的输入无效

Neural network 初学者PyTorch-运行时错误:shape';[16400]';对于大小为9600的输入无效,neural-network,artificial-intelligence,pytorch,conv-neural-network,Neural Network,Artificial Intelligence,Pytorch,Conv Neural Network,我试图建立一个CNN,但我得到了这个错误: ---> 52 x = x.view(x.size(0), 5 * 5 * 16) RuntimeError: shape '[16, 400]' is invalid for input of size 9600 我不清楚“x.view”行的输入应该是什么。而且,我真的不明白在我的代码中应该有多少次使用这个“x.view”函数。是不是只有一次,在3个卷积层和2个线性层之后?或者是5次,每层一次 这是我的密码: 有线电视新闻网

我试图建立一个CNN,但我得到了这个错误:

---> 52         x = x.view(x.size(0), 5 * 5 * 16)
RuntimeError: shape '[16, 400]' is invalid for input of size 9600
我不清楚“x.view”行的输入应该是什么。而且,我真的不明白在我的代码中应该有多少次使用这个“x.view”函数。是不是只有一次,在3个卷积层和2个线性层之后?或者是5次,每层一次

这是我的密码:

有线电视新闻网

有人能帮我理解这个问题吗

“x.shape”的输出为:

形状0火炬。大小([16,3,256,256])

形状1.火炬尺寸([16,16,127,127])

形状2.火炬尺寸([16,24,62,62])


谢谢

这意味着通道和空间维度的乘积不是
5*5*16
。要展平张量,请将
x=x.view(x.size(0),5*5*16)
替换为:

x = x.view(x.size(0), -1)
self.fc1 = nn.Linear(600, 120)
self.fc1=nn.Linear(600120)

x = x.view(x.size(0), -1)
self.fc1 = nn.Linear(600, 120)

谢谢你的回答。我应该在每次卷积时展平张量,还是在3次卷积后展平一次,或者5次(bc我总共有5层),或者?张量展平是在完全连接(线性)层之前完成的,因此您只需在
F.interpolate()
之后执行一次。我的回答有帮助吗?如果是的话,请随意接受/投票这个答案。不是真的,我现在遇到了另一个错误:
运行时错误:大小不匹配,m1:[16 x 800],m2:[600 x 120]
有什么想法吗?您修改了代码/输入大小了吗?是否添加了FC层?