深度学习环境配置(Torch篇)

这里给出我自己使用的pytorch的环境配置,备份,恢复的一套方案,仅供参考。

深度学习环境配置

1. Windows

第一步,安装anaconda、配置环境变量、初始化

  • 首先进官网下载anaconda,然后直接安装,所有配置使用默认配置即可

  • 然后添加下面几个目录到你的环境变量中去(anaconda3所在目录根据你的安装路径修改)

    1
    2
    3
    4
    C:\ProgramData\anaconda3
    C:\ProgramData\anaconda3\Scripts
    C:\ProgramData\anaconda3\Library\bin
    C:\ProgramData\anaconda3\Library\mingw-w64\bin
  • 初始化conda到你的命令行中

    管理员身份打开powershell
    先输入conda按回车,再输入conda init powershell按回车,
    关闭powershell重新打开会自动进入base环境
    如果出现什么组策略错误,请第一步输入Set-ExecutionPolicy RemoteSigned
    回车,再输入conda执行后续操作。

第二步,安装英伟达驱动,cuda驱动,cudnn扩展包

  • 注意,这几个是系统驱动,和你的环境无关,无论你是用python环境,还是java环境,还是什么其他视频编码,游戏,都可以调用系统驱动的包,这个包是全局公用的,不是安装在你的某个python环境中的,首先搞清楚这一点。

  • 英伟达驱动包含studio版,和game版,我们一般下载studio版,这个是开发人员使用的

    下载地址:

    https://www.nvidia.cn/geforce/drivers/

    安装成功后,powershell中输入nvidia-smi就能查看到驱动版本以及支持的最高的cuda版本,

    注意,这个cuda版本是当前驱动所支持安装的最高版本,不是说你安装的cuda,你还没安装呢.

  • cuda驱动版本需要根据英伟达驱动版本来下载,

    版本对应关系如下:

    https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

    cuda下载地址如下:

    https://developer.nvidia.com/cuda-toolkit-archive

    安装完成后,会自动添加到系统环境变量中去,重启电脑,

    输入 nvcc -V即可查看到cuda信息,这个才是你安装的cuda版本信息

  • cudnn扩展包需要根据cuda版本来下载,

    下载及依赖关系地址如下:

    https://developer.nvidia.com/rdp/cudnn-archive

    这个是扩展包,直接把文件夹复制到cuda对应目录即可,cuda目录下也有这几个文件夹,覆盖即可

第三步,安装pytorch

当前最新:https://pytorch.org/get-started/locally/

过去版本:https://pytorch.org/get-started/previous-versions/

要想成功安装,必须搞清楚版本依赖关系,

  • python依赖

    get-started页面,会提示python版本不低于多少,你在conda中创建一个差不多版本的

    python环境即可,这一步请参考下面的conda使用

  • cuda依赖

    根据你前面下载的cuda版本,找到对应的pytorch版本,然后复制它的命令,一般可以选择

    pip或conda命令安装,建议使用pip后面会讲清楚为什么

只要创建的python环境的python版本没问题,并且torch对应的cuda版本与你电脑安装的一致,

这步就不会报错,否则会提示你上面之一有错.

2. Ubuntu

1
2
3
4
5
6
7
8
9
10
11
12
13
几个重要下载地址归纳如下
1.显卡驱动与cuda对应版本关系:
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
cuda与cudnn对应关系在cudnn下载地址页面有说明
2.显卡下载地址:
https://www.nvidia.cn/geforce/drivers/
3.cuda下载地址:
https://developer.nvidia.com/cuda-toolkit-archive
4.cudnn下载地址:
https://developer.nvidia.com/rdp/cudnn-archive
5.pytorch下载地址:
当前最新:https://pytorch.org/get-started/locally/
过去版本:https://pytorch.org/get-started/previous-versions/
1
2
3
4
5
6
7
8
关于anaconda安装:
1.下载地址:https://www.anaconda.com/download
2.优先下载run文件,然后使用bash命令安装,注意,不要用sudo bash,否则会安装到系统磁盘下,
对于anaconda只能安装在用户磁盘,即home下,这样后面执行各种命令时才不需要root权限.
3.安装过程中,有一步是手动输入安装路径的
4.最后一步是确认是否初始化conda,一定要选择yes,然后关闭终端,重新打开就在base环境了
5.如果没有初始化成功,进入那个目录,使用rm -rf anaconda3删除,重新安装
6.anaconda-navigator命令是打开图形化界面,也可以去anaconda3目录下查找这个文件,然后放到桌面上并允许启动
1
2
3
4
5
6
7
8
9
关于驱动的安装:
1.一定要sudo -i进入root操作权限,这样就自动安装到根目录下了,驱动程序默认安装在系统路径
2.下载的文件也是优先下载run文件,这里使用sudo bash命令安装
3.会提示你当前系统使用的是nouveau驱动,但是其实不用管,看英文一直点下去,
需要初始化的尽量初始化,安装好之后,重启会自动使用安装好的驱动,并且使用nvidia-smi命令,可以
查看当前驱动版本,上面显示的cuda版本并不是安装的cuda版本号,而是最高支持的cuda版本号
4.如果nvidia-smi不显示,说明没启动成功,或者打开所有程序找到nvidia,看看能不能调节屏幕分辨率亮度之类的,
有没有RTX3060(我的显卡是3060)的相关调节选项,如果没有,说明没有使用安装的驱动,需要重新安装
5.如果上述方法不行,查看网上禁用nouveau的方法,需要手动在某个文件里添加两行代码
1
2
3
4
5
6
7
8
9
10
11
12
关于cuda的安装:
1.也是sudo -i进入超级root用户,也是sudo bash run文件
2.安装的时候,把驱动选项去掉,按空格键,其他不用动,然后一直安装下去就行了
3.注意,这时候虽然已经安装到usr/local目录下了,会有一个cuda文件夹,但是你使用nvcc -V,会提示你没有这个命令,需要安装cuda toolkit,一定一定不要按提示安装toolkit,否则就会安装一个很老版本的cuda替换掉你安装的cuda,你需要做的就是把nvcc这个添加到环境变量中,具体是:
(1).使用vim ~/.bashrc打开环境变量配置文件
(2).添加下面两行,注意cuda版本一定要和你自己的一样,具体就是你的usr/local下面的cudaxx.xx文件夹
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
(在vim中,按i进入插入模式,插入后按esc退出插入模式,然后按住shift,再按两下zz保存退出)
(3).刷新环境配置文件,然后再使用命令查看cuda版本号就出来了
source ~/.bashrc
nvcc -V
1
2
3
4
关于cudnn的安装:
下载run和deb文件都行,使用sudo bash run文件或者sudo dpkg -i deb文件,
第一次安装可能提示你需要用cp命令把key文件复制过去,就按提示执行,然后再重新安装下载的文件,成功了。
实际安装过程就是复制文件的过程,var文件夹是临时解压的文件夹
1
2
3
4
5
6
7
关于几个安装命令:
bash是执行批处理
dpkg是最底层的安装
apt-get是dpkg的封装
apt是apt-get的封装,能解决依赖问题
假如安装过程中出现了依赖问题,需要使用sudo apt-get install -f修复依赖并安装成功,
假如不能安装,可能软件源需要用sudo apt update更新一下

3. Anaconda3 的使用

3.1 常见conda命令

环境管理
conda env list 查看已经安装的环境(会同步到IDE中,在IDE中可以查看环境的目录)
conda create -n zyw python=3.10 创建名为zyw的环境,python版本3.10
conda remove -n zyw —all 删除环境
conda activate zyw 激活进入虚拟环境
conda deactivate 退出当前环境
环境包管理
conda list 查看当前环境中已安装的包
conda install numpy matplotlib pandas torch 在当前环境中安装指定包,可以同时安装多个
conda remove numpy 在当前环境中删除指定包
conda update numpy 更新指定包
conda update —all 更新当前环境中的所有包
conda自身相关
conda info 查看当前conda信息
conda —version 查看conda版本
conda update conda 更新conda至最新版本

3.2 在IDE中配置,激活,使用虚拟环境(以VScode为例)

  • 第一点

VScode下方终端直接调用windows的powshell,在这里很方便使用conda配置激活环境,安装包都可以在这个黑框框里搞

但是这个终端下激活环境,跟你程序所使用的环境没有关系

  • 第二点

不管你在哪个IDE运行程序,总有地方可以找到这个程序的内核(编译器,环境),只要在这个地方找到你创建的虚拟环境,

切换内核(环境)即可。

3.3 conda备份和恢复环境

个人习惯:

  1. conda只用于管理环境,从来不安装各种包,比如conda install 全都变成 pip install,

  2. 包的安装管理备份恢复全都使用pip

  3. 英伟达驱动,cuda,cudnn,anaconda3,pytorch单独安装,然后使用pip恢复其他包
1
2
3
4
5
6
7
8
9
10
关于conda备份恢复命令:
备份
conda env export -no-build > environment.yaml
conda env export > test.yaml
带有nobuild的后面不会添加电脑配置信息,方便不同系统之间迁移
恢复
conda env create -f environment.yml
成功要点:
(1).可以把pip的部分单独剪切出来,使用pip恢复
(2).conda恢复过程中,哪些包出现问题,就删除哪些
1
2
3
4
5
6
7
8
9
10
关于pip备份恢复环境:
最好不要使用conda恢复,同系统不太清楚,反正不同系统之间很难恢复成功,我是使用
pip freeze > requirements.txt备份环境,
pip install -r requirements恢复环境,
requirements.txt里面前面是包的名称,后面是版本号,里面有一大堆不认识的可以删除,基本不影响
另外使用pip只能导出使用pip安装的包,使用conda安装的包是导出不来的,所以需要使用conda导出yaml文件,
检查pip之外的那些包,有没有遗漏的,把遗漏的复制到txt文件中,
所以后面尽量使用pip安装包,这样方便后续环境管理,包之间冲突的可能性也会减小,尽量不要使用conda命令安装,
我没试过只使用conda命令安装包,然后使用conda备份恢复环境,但是我是混合情况,使用conda恢复环境各种冲突,
各种问题,所以改用pip了

3.4 Anaconda软件源

1
2
3
4
5
6
7
8
9
10
11
关于conda的软件源:
使用conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
添加源,然后到用户目录下显示隐藏文件,找到.condarc文件打开,添加如下清华源
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
- defaults
注意不是越多越好,顺序也很重要,不对的情况下使用conda或pip会安装失败
清华源的地址:
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

4. Jupyter 内核配置

如果你已经使用Anaconda创建了一个新环境,并且想要将其添加到Jupyter Notebook的内核列表中,可以按照以下步骤进行操作:

  1. 激活你要添加到Jupyter Notebook的环境。例如,如果你的环境名为py310,则在终端中运行以下命令:
1
conda activate py310
  1. 安装ipykernel包。这个包提供了一个命令将当前环境安装为Jupyter Notebook的一个内核。
1
pip install ipykernel
  1. 将环境添加到Jupyter Notebook内核列表中。运行以下命令,其中py310是你的环境名称,而PY310是你想要在Jupyter Notebook内核列表中显示的名称,其实写成一样就行,没必要区分。
1
python -m ipykernel install --user --name py310 --display-name "PY310"

现在,你就可以在Jupyter Notebook的内核列表中看到你刚刚添加的环境了。启动Jupyter Notebook之后,在Notebook上方的“Kernel”菜单下拉列表中选择你的新环境即可开始使用它。

  1. 查看与删除内核

    查看当前的kernel

    1
    jupyter kernelspec list

    删除jupyter notebook的kernel

    1
    jupyter kernelspec remove kernelname

一点补充:

1
2
3
4
5
6
7
8
9
10
11
12
关于Ubuntu中默认启动路径设置:
启动你的环境,然后
第一步:
jupyter-lab --generate-config
即可出现jupyter_lab_config所在的路径
第二步:
打开jupyter_lab_config.py文件,查找“root_dir",
有一个后面有以下内容
c.ServerApp.root_dir = ‘jupyter lab默认启动位置’

改为你的路径就行,我这里设置为
c.ServerApp.root_dir = '/home/amadeus/notebook'