ubuntu安装pytorch及使用过程的报错记录

安装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 ...
      • 报错9:训练时out of memory
    • 其他

安装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

  1. 在anaconda安装路径搜索
find anaconda3/ -name libmkl_intel_lp64.so

搜索结果如下:
在这里插入图片描述

  1. 添加环境变量
    在~/.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().

ubuntu安装pytorch及使用过程的报错记录_第1张图片

解决办法:

参考报错提示进行修改,去掉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,找到如下内容
ubuntu安装pytorch及使用过程的报错记录_第2张图片
添加两行得到如下内容
ubuntu安装pytorch及使用过程的报错记录_第3张图片
解决问题。

报错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 错误如何处理

你可能感兴趣的:(ubuntu,pytorch,linux)