前言
前言就是要跟着李沐老师学 AI 了,恭喜自己顺利考上研究生,一段全新的学习又要开始了。一堆环境要搭,哪知道搭了一下午,很多坑在这里 Mark 一下。还是推荐李沐老师的良心课程,另外还有一个良心资源:《动手学深度学习》Pytorch 版
Anaconda
这里没啥坑。
下载安装
注意
下载完右键以管理员身份运行进行安装,安装位置自己自定义不多说,有一个注意的地方就是安装过程中会有 Advanced Installaiton Options
选项,选择第一个即添加到系统的环境变量即可,第二个可不选。
修改源
众所周知。所以把包管理(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 的终端。
尝试如下命令:
conda create -n issactan python=3.8
意思是,新建一个名字为 issactan 的自带 3.8 的 python 版本的虚拟环境activate issactan
创建好之后使用此命令去激活环境(进入该虚拟环境),那么就相当于你进入了一个“与世隔绝的世界”,你在里面做什么都不会影响到外面deactivate issactan
退出此虚拟环境conda info -e
退出环境之后,查看 Anaconda 已有的环境conda remove -n issactan --all
删除 issactan 这个环境conda activate my_other_env
通过此命令可以切换到其他的虚拟环境conda create -n B --clone A
使用这个命令可以创造一个环境 B,而这个环境 B 是已有环境 A 的克隆体
Pytorch
忍不住再吐槽,安装这东西用了我一下午。
假设我们创建了 issactan 这个环境,接下来要做的是在这个环境中安装 Pytorch(我们俺要安装的是 GPU 版本),首先进入这个环境! :activate issactan
安装 Pytorch 之前要先了解一些东西 ,下面做一个简易的描述:
- CUDA 其实就是 NVIDIA 推出的运算平台,可以让我们的 GPU 解决复杂计算问题
- Cuda Tookit 则是 CUDA 的一个完整的工具包(安装 Cuda Tookit 其实就是在安装 CUDA)
- cudnn 则是一个软件库,里面提供了好很多深度学习的函数
而用 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
虚拟环境中安装 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 在图形化界面进行不同环境的切换。
参考
- Pytorch
- Windows下用anaconda安装pytorch(一行代码)以及梳理了GPU,CUDA,cudnn之间的关系
- 2020.08最新必看 pytorch+cuda10.2(或10.1)+python3.7版 30min完成安装(五小时血泪经验)亲测可用!!防坑!!
- anaconda环境下载安装GPU版本pytorch时遇到的问题及解决方法(cuda11.3)
- Anaconda3虚拟环境中安装Jupyter Notebook
- Jupyter Notebook 添加虚拟环境