Loading

PyTorch——配置深度学习环境

PyTorch——配置深度学习环境

还在为各种包的版本匹配发愁,还在冥想这个错误到底从何而来。
放弃吧,重装才是王道。

安装Cuda

tensor在GPU上运行是可以提高一定的处理效果的
首先需要检查一下你的GPU,查看一下版本
很简单进入任务管理器,打开性能,就能看见你GPU的参数啦(一般游戏笔记本是有两张显卡的,一张独显,一张集显)

img

前往Cuda官网 下载驱动,安装即可

img

下载后,默认安装就好(前提你没有电脑里没有Cuda)。然后打开cmd,输入 nvidia-smi 即可查看

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

image-20220817091238155

但是当你的环境下默认有一个Cuda环境的时候,你想安装一个新的Cuda环境时,需要注意的是你就不能再添加新的Cuda 驱动了。

有的环境这时使用nvcc -V 的时候,没有办法显示。其实只要去配置一下环境变量就OK

vim ~/.bashrc

#下面加进去有
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

#source一下
source ~/.bashrc

接下来要安装Cudnn.

安装Anaconda

硬件好了,我们需要一个集成环境帮我们管理包和他们之间的依赖 anaconda当然是很好的选择

这里推荐两个路径:Anaconda官网清华软件镜像园

同样也是下载安装即可,注意勾选默认到Path环境变量就行。

这里我们需要注意,修改一下anaconda的源:清华大学开源软件镜像站和中国科技大学镜像站 方便我们下载

conda config --add channels http://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/

conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 
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/msys2/ 
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/    #安装pytorch的小伙伴这个源一定不要漏

conda config --set show_channel_urls yes

衷心提醒网址一定要是http 不能是https,要不然会访问报错。 网址也不需要加引号切记

当然也可以自己手动去 C:用户下修改.condarc(这里贴出我的文件内容)

ssl_verify: true
channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
custom_channels:
  conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

查看conda版本 conda -version

升级conda工具包 conda upgrade --all

查看当前conda环境 conda env list

生成所需环境的txt文件 pip freeze > requirements.txt

conda安装txt conda install --yes --file requirements.txt

conda环境,导出格式为.yml文件或.txt文件: conda env export > requirements.yml

conda list -e > requirements.txt

安装环境 : conda env create -f requirements.yml

创建虚拟环境 conda create -n <name> python=3.8 这样anaconda就会去找python对应的包 耐心等待就好

删除环境conda remove -n <name> --all

激活环境 conda activate py38 我这里的py38就是我新建的虚拟环境名称

conda还有一个好处 就是可以版本回滚 方便回到之间的状态

conda list --revisions

img

若想回滚到某个时刻,直接输入那个版本号就行了,例如我想回滚到第10个版本,即

conda install --revision 10

安装torch

直接在官网寻找就好了,对应好自己的操作平台,和cuda版本下载即可

img

之前设置的源,会为我们找到国内的镜像路径,加快下载速度

测试torch

如果在Pycharm内,直接进入project选择新建虚拟环境的python.exe即可
如果在Jupyter Notebook中,则需要多安装一个包 nb_conda
安装完以后你就会发现你的jupyter会多一个conda插卡,可以查看conda的虚拟环境

img

运行的程序的时候,注意选择kernel是哪个环境的 以免发生版本错误
这些都是显示torch信息的一些命令可以用于测试的哦

import torch
print(torch.__version__)
torch.cuda.is_available()
torch.cuda.device_count()
torch.cuda.get_device_name(0)

img

安装PyG

首先安装torch-geometric之前需要准备的是,要查看好你当前的环境需要配置的文件

硬性要求python版本在3.7-3.10之间、Pytorch版本最低为1.8。

同样也是要在官网寻找,对应好自己的操作平台,和torch版本、cuda版本。详细的版本对应在

对于目前比较稳定的torch1.12版本,在conda的镜像源中没直接的版本对应pyg。即使换成1.11版本的 运行conda install pyg -c pyg代码后测试的仍然存在一点小问题

这里我之前安装的环境是python3.8和torch1.11.0,cuda11.5

所以我这里安装的代码就是

pip install torch-scatter -f https://data.pyg.org/whl/torch-1.11.0+cu113.html
pip install torch-sparse -f https://data.pyg.org/whl/torch-1.11.0+cu113.html
pip install torch-geometric
pip install torch-cluster -f https://data.pyg.org/whl/torch-1.11.0+cu113.html
pip install torch-spline-conv -f https://data.pyg.org/whl/torch-1.11.0+cu113.html

当然如果安装出现错误,不妨看看pyg官网最下面有一些Frequently Asked Questions还是相当不错的

在Neural Network 2022 关于GTN的文章中,涉及到一个关于torch-sparse-old的包

从作者的md中可以看到,为了解决torch.geometric删除了稀疏矩阵的backward()这个bug,他们把自己的torch-sparse上传到pip上,名字是torch-sparse-old。

但是pip install torch-sparse-old 会出现错误

cuda/spspmm_kernel.cu(76): error: identifier "cusparseXcsrgemmNnz" is undefined
cuda/spspmm_kernel.cu(84): error: identifier "cusparseScsrgemm" is undefined
cuda/spspmm_kernel.cu(84): error: identifier "cusparseDcsrgemm" is undefined

这个问题我尝试了很多方法,包括但不仅限于修改gcc,修改cuda版本,修改python、torch版本,以及删除环境重新来过。在这个关于pytorch_sparse的issue内我也同样发现一个朋友有同样的错误。但是并没有看到好的解决方法

我后来直接在代码中把 import torch_sparse_old 修正为 import torch_sparse as torch_sparse_old.

竟然惊奇的发现可以运行代码, 按理说backward()存在问题,model的train是无法正常进行的。那么一个合理的解释就是,新的torch-sparse、torch-geometric已经修正了这里无法传播的问题。

posted @ 2022-02-23 10:40  Christopher·阳  阅读(317)  评论(0编辑  收藏  举报