Anaconda 环境下 Pytorch 的配置

搞了一下午

目录

前言

前言就是要跟着李沐老师学 AI 了,恭喜自己顺利考上研究生,一段全新的学习又要开始了。一堆环境要搭,哪知道搭了一下午,很多坑在这里 Mark 一下。还是推荐李沐老师的良心课程,另外还有一个良心资源:《动手学深度学习》Pytorch 版

Anaconda

这里没啥坑。

下载安装

注意

下载完右键以管理员身份运行进行安装,安装位置自己自定义不多说,有一个注意的地方就是安装过程中会有 Advanced Installaiton Options 选项,选择第一个即添加到系统的环境变量即可,第二个可不选。

image.png

修改源

众所周知。所以把包管理(conda)镜像修改为国内源(清华源),具体做法在自己的命令行终端分别输入即可。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

基本命令与操作

上面所安装的 Anaconda3 ,自带的版本是 python 3.6,实际使用中我们可以创建不同的环境从而使用该环境下的任意配置,这里我们打开 Anaconda Prompt ,Anaconda 安装完之后在开始目录会出现此程序,其实就是 Anaconda 的终端。

尝试如下命令:

Pytorch

忍不住再吐槽,安装这东西用了我一下午。

假设我们创建了 issactan 这个环境,接下来要做的是在这个环境中安装 Pytorch(我们俺要安装的是 GPU 版本),首先进入这个环境!activate issactan

image.png

安装 Pytorch 之前要先了解一些东西 ,下面做一个简易的描述:

而用 Anaconda 安装 Pytorch 的时候,Anaconda会自动为用户安装 Cuda Toolkit,只要版本合适,则可正常运行,并且每一个 Pytorch 也会携带与CUDA合适的 cudnn,意思就是不用手动安装 CUDA 和 cudnn

找版本,安装

上面所提及的“版本合适”,意思就是安装 Pytorch 之前需要找到我们电脑对应的 CUDA 版本进行对应的安装,这里始终是向下兼容的。查看下面的表以及 Pytorch 官网 ,(在命令行中输入:nvidia-smi 查看自己电脑显卡相关信息)查找适合自己的版本

比如说对比两张图之后,我们知道我们电脑 CUDA 版本是 11.2 而官网首页中的 11.3 很明显是不适合我们的,我们查看 只能选择向下兼容的 10.2 但是非常遗憾的是, Pytorch 官网 ,在此时此刻已经不支持 CUDA 10.2 版本安装命令的复制,但是实际上还存在着之前版本的文件,我们只需要将版本号进行修改即可。

接下来我们只需在命令行中复制此命令即可完成安装:

conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

但是!

上面的方法安装完成之后,我们得到的是 CPU 版本的 CUDA!惊喜吗!在命令行敲入以下命令你会发现 torch.cuda.is_available() 返回的值是 false

print(torch.cuda.is_available())#cuda是否可用   ----> false
torch.cuda.device_count()#返回GPU的数量  ---> 0 

但你以为是版本不兼容,是不是下错版本的时候,请你这时候敲入命令:conda list ,你会惊奇地发现安装的 Pytorch 版本名后面带着 CPU ,意思就是你装的是 CPU 版本。这一切都要“归功于我们的”改镜像,清华源没有这个版本的 CUDA 只能默认安装 CPU 版本的,事实就是如此。

解决方法

const uninstall pytorch 卸载这个 CPU 版本的 Pytorch,然后进行下载正确的版本。而这次我们选用 pip 进行下载,因为 conda 下载他会检测一些相关依赖很容易报错。

这里直接给出下载命令:(假设选择的是 CUDA 10.2 版本的)

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

耐心等待,时间会比较长。这下是真的安装好了!

安装完成

检测是否在此环境中顺利安装 Pytorch ,是的,我再一次重复了是在此环境下,所以安装 Pytorch 之前一定一定要进入你选定的虚拟环境,否则我就直接安装在了电脑自带的 Python 中,这样子很麻烦,很难进行迁移。

敲入如下命令:

import torch
print(torch.__version__)
print(torch.cuda.is_available()) #cuda是否可用
torch.cuda.device_count() #返回GPU的数量
torch.cuda.get_device_name(0) #返回gpu名字,设备索引默认从0开始

能得到如下类似的结果即可,最重要的是:torch.cuda.is_available() 是否为 true

image.png

虚拟环境中安装 Jupyter Notebook

进入虚拟环境:activate issactan , 然后安装 nb_conda

conda install nb_conda

安装完之后,将虚拟环境写入 Jupyter Notebook 的环境中:

python -m ipykernel install --user --name issactan --display-name "issactan"

实际上为什么不直接安装 Jupyter Notebook 呢?因为安装 Jupyter Notebook 要依赖一些包,具体是 ipykernel等等, 而为了省去麻烦,直接安装 nb_conda 即可安装这些 Jupyter Notebook 所依赖的包。

安装完成之后,在激活虚拟环境下,命令行输入 Jupyter Notebook 便可以用默认浏览器打开 Jupyter Notebook , 能够真正实现虚拟环境统一化。

也可以在直接打开 Jupyter Notebook 在图形化界面进行不同环境的切换。

参考