只是为了记录调试的困难和解决的方法,记得搜索问题。
out of memory at /opt/conda/conda-bld/pytorch_1524590031827/work/aten/src/THC/generic/THCStorage.cu:58
解决方法:1、换小的batch(已解决);2、图片尺寸换成小的;3、图片格式从float换成int;4、换大显存、大显卡;5、优化程序,每一步都释放掉多余的占用显存的变量;
2,Input type (CUDAFloatTensor) and weight type (CPUFloatTensor) should be the same
解决方法:仔细看错误信息,CUDA和CPU,输入数据x和模型中的权重值类型不一样,一般来说是因为模型的参数不在GPU中,而输入数据在GPU中,通过添加model.cuda()将模型转移到GPU上以解决这个问题。(已解决)
3,*Input type (CUDADoubleTensor) and weight type (CUDAFloatTensor) should be the same
解决方法:根据错误信息,显然Input类型和模型的权重类型不一致,一个为Double一个为float,通过对输入数据Tensor(x)进行x.float()将输入数据和模型权重类型一致,或者将模型权重的类型转化为Double也可以解决问题。
4,RuntimeError: size mismatch at /pytorch/torch/lib/THC/generic/THCTensorMathBlas.
cu:247
解决方法:就是出现了张量错误,可以通过调试,检查出现错误的上一层size,对下一层size是否对应。同时注意在pytorch中,全连接之前需要展开成一维向量,x = view(x.size(0), -1),
一定要注意在展成一维向量之前要对该层进行与特征图大小的同等pooling,保证全连接的参数与一维向量的参数相互对应。(已解决)