安装pytorch及报错记录
- 安装pytorch1.4-cuda10.1
- 安装命令
- import torch报错1
- import torch报错2
- 报错3:undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE
- 报错4:RuntimeError: set_sizes_contiguous is not allowed on a Tensor created from .data or .detach().
- 报错5:编译报错,RuntimeError: The detected CUDA version (9.0) mismatches the version that was used to compile PyTorch (10.2). Please make sure to use the same CUDA versions
- 报错6:THCudaCheck FAIL file=/opt/conda/conda-bld/pytorch_1524586445097/work/aten/src/THC/THCGeneral.cpp line=844 error=11 : invalid argument
- 报错7:cudaCheckError() failed : no kernel image is available for execution on the device
- 报错8:Unexpected key(s) in state_dict: "RCNN_base1.1.num_batches_tracked", "RCNN_base1.4.0.bn1.num_batches ...
- 其他
安装pytorch1.4-cuda10.1
安装命令
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch
import torch报错1
ImportError: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory
解决办法:
参考:search .so
- 在anaconda安装路径搜索
find anaconda3/ -name libmkl_intel_lp64.so
搜索结果如下:
- 添加环境变量
在~/.bashrc中加入一行
export LD_LIBRARY_PATH=/root/anaconda3/lib/libmkl_intel_lp64.so:$LD_LIBRARY_PATH
更新环境变量
source ~/.bashrc
查看添加的环境变量
echo $LD_LIBRARY_PATH
解决。
import torch报错2
ModuleNotFoundError: No module named ‘torch’
解决办法
报错3:undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE
运行fasterrcnn的时候忽然报错,之前不报错。
undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE
解决办法:把项目的lib文件夹下的build文件夹清空,重新进行编译
cd lib
rm -rf build/
python setup.py build develop
报错4:RuntimeError: set_sizes_contiguous is not allowed on a Tensor created from .data or .detach().
解决办法:
参考报错提示进行修改,去掉data。
报错5:编译报错,RuntimeError: The detected CUDA version (9.0) mismatches the version that was used to compile PyTorch (10.2). Please make sure to use the same CUDA versions
检查了一下,发现CUDA_HOME这个环境变量已经改成了cuda9,nvcc的版本也变成了cuda9,但是在虚拟环境中使用conda list和进入命令行之后使用torch.__version__两种方式查看得到的pytorch版本不同,感觉可能是当前虚拟环境装了两个pytorch,再用pip list进行查看,果然发现pip还装了一个torch。
解决办法:
两个pytorch卸载掉不需要的一个即可;
报错6:THCudaCheck FAIL file=/opt/conda/conda-bld/pytorch_1524586445097/work/aten/src/THC/THCGeneral.cpp line=844 error=11 : invalid argument
使用2070,torch0.4,cuda9.0的时候出现上述报错,由于不影响运行,就没管它。
报错7:cudaCheckError() failed : no kernel image is available for execution on the device
解决办法:
参考CUDA Error: no kernel image is available for execution on the device: No error 错误如何处理,发现是算力不匹配,由于我的显卡是2070,cuda版本为9.0,打开用于编译项目的make.sh,找到如下内容
添加两行得到如下内容
解决问题。
报错8:Unexpected key(s) in state_dict: “RCNN_base1.1.num_batches_tracked”, "RCNN_base1.4.0.bn1.num_batches …
解决办法:
参考Pytorch的12个坑里的第9条。
错误原因是由于训练和测试所用的pytorch版本(0.4.1版本前后的差异)不一致引起的,偷懒的做法是将测试脚本中读取模型的load_state_dict的strict参数置为False。
load_state_dict(torch.load(weight_path), strict=False)
即可解决问题。
报错9:训练时out of memory
解决办法:参考办法,在训练的每个step清理显存(主要是清理了loss)
del loss,rpn_loss_cls,rpn_loss_box,RCNN_loss_cls, RCNN_loss_bbox
torch.cuda.empty_cache()
其他
conda报错
conda update conda
报错
PackageNotInstalledError: Package is not installed in prefix.
prefix: /root/anaconda3/envs/da_fasterrcnn_krumo
package name: conda
解决办法:
退出当前虚拟环境,回答base环境再运行update命令。
conda deactivate
[1]:ImportError: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory
[2]:pytorch版本,cuda版本,系统cuda版本查询和对应关系
[3]:解决PyTorch与CUDA版本不匹配的问题
[4]:pytorch与cuda对应关系
[5]:CUDA Error: no kernel image is available for execution on the device: No error 错误如何处理