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 

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

2.查看.bashrc文件,加cuda环境变量

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

vim .bashrc 或者 vim ~/.bashrc

在这里插入图片描述
翻到文件末尾,按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"

Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结_第2张图片
最后保存即可,不熟悉Linux命令的可以看下保存方法如下:作者:白居居 Linux 修改 .bashrc
Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结_第3张图片
记得最后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官网
Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结_第4张图片
因为官网首页已经没有我要的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命令从指定的开源镜像下载。
在这里插入图片描述
添加镜像方法,以清华镜像举例:

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

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

5.测试

Linux-Anaconda虚拟环境 安装配置GPU版本Pytorch 流程+遇到与解决问题小结_第6张图片
十分建议按照上面的流程在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

你可能感兴趣的:(pytorch-gpu,anaconda虚拟环境,anaconda,cuda,linux,pytorch,gpu)