TypeError: empty() received an invalid combination of arguments 报错

搭建深度网络的时候总是报这个错误:
报错描述
后来经过多次试验,最终发现问题。
首先这句话的意思是:传递的参数无效。
经过查看代码,我看到了:

conv=SCConv(inplanes=c/2,planes=c/2,stride=1,padding=1,dilation=1,groups=1,pooling_r=4,norm_layer=nn.BatchNorm2d)

这里的inplanes=c/2需要注意,这样的计算结果是一个浮点数,比如8/2=4.0,4.0是无效的传参,就会报这个错误。
解决:
传参时加上int转换:

conv=SCConv(inplanes=int(c/2),planes=int(c/2),stride=1,padding=1,dilation=1,groups=1,pooling_r=4,norm_layer=nn.BatchNorm2d)

以此类推,代码中的所有传递的参数都不能直接使用这样的相除,记得加上int强转。

你可能感兴趣的:(python,pytorch,深度学习)