pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结


Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结

  • 遇到问题
  • 流程总结
    • 1.查看cuda版本
    • 2.查看.bashrc文件,加cuda环境变量
    • 3.创建一个pytorch-gpu虚拟环境
    • 4.到pytorch官网安装cuda对应的gpu版本的pytorch即可。
    • 5.测试
  • 遇到各种问题、Bug小结
    • 1.查看cuda版本-nvcc -V、cat /usr/local/cuda/version.txt、nvdia-smi 三种方式得到的都不一样
    • 2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的
    • 3.安装pytorch时候没加pytorch和torchvision版本号,会默认安装torch1.4.0与cuda10.0不匹配!
    • 4.RuntimeError("{} is a zip archive (did you mean to use torch.jit.load()?)".format(f.name))
    • 5.gpu版本Pytorch执行.cuda()代码会卡死
  • 参考帖

遇到问题 最近在用pytorch跑深度学习模型,不过一直用的是CPU,训练速度还是跟不上,正好实验室服务器比较空闲,而且cuda、cudnn也都是配置好了的,所以打算在上面的anaconda虚拟环境中配置一下我想要用的gpu版本的pytorch,配置期间遇到了不少问题,也参考了很多博主的经验,现自己总结记录一下。
流程总结 先说结论,代码可以跑起来了就会发现,事情怎么这么简单(笑哭),但其实是将近一周的折腾才搞好的。因为我只想连服务器的gpu用一下,上面cuda、cudnn都已经配置好了的,我只需要装一个gpu版本的pytorch即可。
1.查看cuda版本 首先查看cuda版本,有很多种查看cuda版本的方法,nvcc -V查看的是Runtime运行时的cuda版本,我这里是10.0:(截图是进入/usr/local文件了,但是其实不必进入)
nvcc -V

pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结
文章图片

PS:如果nvcc -V命令不起作用,可以按照提示sudo安装一下即可
pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结
文章图片

2.查看.bashrc文件,加cuda环境变量 因为现在我是在我自己服务器的账户下配置,所以也需要把自己的conda里面加上cuda环境变量,我一共加了三行。
首先打开.bashrc文件
vim .bashrc 或者 vim ~/.bashrc

pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结
文章图片

翻到文件末尾,按i键可以进行编辑,添加路径:
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH" export PATH="/usr/local/cuda/bin:$PATH" export CUDA_HOME="/usr/local/cuda:$CUDA_HOME"

pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结
文章图片

最后保存即可,不熟悉Linux命令的可以看下保存方法如下:作者:白居居 Linux 修改 .bashrc
pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结
文章图片

记得最后source .bashrc更新一下.bashrc。
3.创建一个pytorch-gpu虚拟环境 创建一个名字为pytorch-gpu10.0的虚拟环境,也可以指定python版本号,直接在最后加 python=3.x即可(x是你想要的版本号,比如3.6、3.7都行)
conda create -n pytorch-gpu10.0

激活进入此虚拟环境:
conda activate pytorch-gpu10.0

4.到pytorch官网安装cuda对应的gpu版本的pytorch即可。 pytorch官网链接:pytorch官网
pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结
文章图片

因为官网首页已经没有我要的cuda10.0版本的pytorch安装命令了,所以进入历史版本去找:
注意:不管下载什么版本的,一定要去官网找好对应命令再去conda install,否则可能只是少写了torch的版本号,以为它会智能的给你下载cuda版本对应的pytorch,但其实它可能给我们下载最新版本的torch,可能与cuda不匹配,出现各种问题,所以还是安装官方给的命令来。
比如我自己的:
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0

没加 -c pytorch,因为加了它默认是从pytorch官方源下载,速度比较慢,经常下载失败。
不加应该就会从anaconda自己的源下?感觉是这样,反正会快。也可以加了镜像channel之后用-c soumith命令从指定的开源镜像下载。
pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结
文章图片

添加镜像方法,以清华镜像举例:
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes

【pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结】pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结
文章图片

5.测试 pytorch-gpu|Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结
文章图片

十分建议按照上面的流程在python解释器中执行一下,一般都是到:
torch.cuda.is_available()=True

就觉得可以了,但是我在执行自己的程序时候,一直卡死在model.cuda()这句话里面,就算是使用最简单的:
t=torch.ones((2,1)) t=t.cuda()

也还是卡死不动,怀疑了好久是不是版本有问题,尝试了各种pytorch-conda-python版本都没有用,而且我下载的就是官网推荐的版本,所以应该是没问题的。就一直觉得问题很奇怪,最后还是请教同学跑了一下他那里的代码想看看到底怎么使用GPU的,发现他那里也不能用了,结果是因为服务器有问题了,重启了一下服务器就万事大吉了!不得不感叹重启大法确实好,我一直在找自己这里的问题,卡了很多天,反正算是一次宝贵的经验吧。
遇到各种问题、Bug小结 1.查看cuda版本-nvcc -V、cat /usr/local/cuda/version.txt、nvdia-smi 三种方式得到的都不一样 查看cuda版本-三种方式得到的都不一样
2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的 多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的
3.安装pytorch时候没加pytorch和torchvision版本号,会默认安装torch1.4.0与cuda10.0不匹配! 安装pytorch-cuda10.0版本时候没加pytorch和torchvision版本号,会默认安装torch1.4.0与cuda10.0不匹配
4.RuntimeError("{} is a zip archive (did you mean to use torch.jit.load()?)".format(f.name)) RuntimeError("{} is a zip archive (did you mean to use torch.jit.load()?)".format(f.name))
5.gpu版本Pytorch执行.cuda()代码会卡死 gpu版本Pytorch执行.cuda()代码会卡死
参考帖 Pytorch-gpu版安装教程【注意:无需提前安装cuda和cudnn】
Pycharm配置远程pytorch服务器
PyCharm 使用指南、远程连接、PyTorch CPU\GPU\multi-GPU的使用(Pycharm远程调试)
ubuntu安装多个版本的CUDA并随时切换
配置pycharm远程调试的环境(服务器为linux系统)&&服务器上安装tensorflow-gpu及配置cuda环境&&相关问题的解决办法
Ubuntu 多版本Cuda(8.0,9.0)以及CuDnn安装
Linux 和 Windows 查看 CUDA 和 cuDNN 版本
Pytorch版本、CUDA版本与显卡驱动版本的对应关系
容器里 pytorch model.cuda()卡死(虽然不是我这里的问题的解决方法,但是可能给其他人一些提示,也一并放这里了)
python - Pytorch .to(‘cuda’)或.cuda()不起作用,只会卡住(同上)
Linux 修改 .bashrc
PyTorch1.2 + CUDA10.0 + cuDNN7.6 + Anaconda3配置
win10-64位+GTX1070max-q安装CUDA10.0+CUDNN7.4.2+Anaconda3.5.2+Tensorflow-gpu1.13.1+PyTorch-gpu1.1

    推荐阅读