本文用于记录所在pytorch所遇到过的运行时错误,持续更新。
- 变量所在设备(CPU,GPU)不一致问题
RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same
可能原因:现在假设代码要在GPU上运行,并且你已经进行my_model.to(device)
操作了。注意只有my_model
中的属性(也就是self.
开头的变量)才会进行.to(device)
。如果出现这个错误,可能是有的中间变量需要手动再显式地.to(device)
一下~
- 在Conv2d中padding或stride的参数个数错误的问题
RuntimeError: expected padding to be a single integer value or a list of 1 values to match the convolution dimensions, but got padding=[0, 0]
原因一:
对于一张二维图片来说,它的padding也是二维的,即横、纵方向上都需要设置padding(当然这两个数字一般是一样的)。现在为什么提示我们padding应该是一维的呢?一定是输入数据维度不对。
对于Conv2d()
来说,它要求的输入的形状是四维的 ( N , C i n , H , W ) (N