ubuntu 20.04 深度学习环境配置过程

ubuntu 20.04 深度学习环境配置过程以及遇到的一系列问题


写这个博客主要还是为了记录一下里面的过程和需要用到的命令,以及对一些发生的问题进行记录,方便后面如果再次使用的时候可以有参考。

Nvidia 显卡驱动的安装

这个部分我还是参考之前的笔记进行的安装:记录Ubuntu20.04的NVIDIA显卡驱动安装和CUDA安装
没啥好说的。

CUDA 和 cuDnn 版本的安装

首先是对照CUDA和显卡驱动的对应表,这个网上都有。其次上面安装 Nvidia 驱动的文章中也有相关 CUDA 的安装链接,这里就不多说了。然后是 cudnn 的安装,这个是参考这份文章:最正确的姿势安装cudnn。
因为网上很多的博客里面在关于 cudnn 的安装上,说的是将官网下载的包解压之后会获得名为 cuda 的文件夹,然后再进行文件夹里面文件的复制和替换,但是我最开始安装这个的时候,并没有找到解压后得到的 cuda 文件夹,当时以为是最开始安装的 CUDA 版本有问题,折腾半天,没想到原来其实就是将解压好的 cudnn 文件里面的东西复制到 /usr/local/cuda/ 这个路径对应的文件夹下面。最后再添加环境变量。详细的参考上面的那个博客。
需要注意,下载的包如果后缀是 .tar.gz,则命令行使用 tar -zvxf 。如果后缀是 .tar.xz,则命令行改为 tar -xf 。其他部分与上面的博文一样。
编辑和更新环境变量的命令:

	// 编辑文件
	gedit ~/.bashrc
	// 编辑完成保存并退出后,更新文件
	source ~/.bashrc

不过这个博客里面需要注意一个问题,查看安装的 CUDA 版本,比较新的 CUDA 已经没有version.txt 文件了,相关的版本信息在这个文件 version.json 里面,因此使用的命令是

	cat /usr/local/cuda/version.json

同样,查看 cudnn 版本的文件也不是 cudnn.h 而是 cudnn_version.h ,因此使用的命令为:

	cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

anaconda 的安装

这个软件是管理环境的,直接安装最新版本就可以。安装教程好找。
里面常用的命令可以参考这个博客:Anaconda conda常用命令:从入门到精通

pytorch 版本确定和安装

在安装 pytorch 的时候首先要确定一点:一个系统可以同时安装多个 CUDA 版本,一个虚拟环境只能安装一个 pytorch 版本,不同的torch 需要不同的cuda版本。
因此在安装不同版本的 pytorch 的时候需要通过 anaconda 创建不同的环境,然后在各自的环境中按照项目或者课题的要求安装对应版本的 pytorch。后面还会谈论到安装 torchvision,不同版本的 pytorch、torchvision、python、CUDA 之间的对应关系可以参考这个博客:PyToch和Torchvision对应版本。
如果以前已经安装过 pytorch 和 torchvision 版本的,但是想查询其对应的版本号的,有两个方法:
方法一:

	// 首先激活所在的虚拟环境。例如创建的虚拟环境是 pytorch111,那么通过 conda 命令激活
	conda activate pytorch111
	// 输入命令,查询里面所有库的版本号
	conda list

方法二:

	// 首先激活所在的虚拟环境。例如创建的虚拟环境是 pytorch111,那么通过 conda 命令激活
	conda activate pytorch111
	// 然后输入 python 进入所在的 python 环境
	python
	// 导入 pytorch 包,查看版本。注意 pytorch 的包名此处就是 torch。其次此处的下划线单侧是两个,而不是一个。
	import torch
	torch.__version__
	// 导入 torchvision 包,查看版本。
	import torchvision
	torchvision.__version__

退出 python 环境的命令:

	exit()

如果之前没有安装过这两个包的,那么需要参考一下步骤进行安装。

1.首先为 pytorch 单独创建 conda 环境

单独创建 conda 环境用于匹配对应的PyTorch版本。创建的命令如下。

	conda create -n pytorch1130 python=3.8

安装的是 pytorch1.13.0 版,因此创建的 conda 环境命名 pytorch1130,并指定了Python版本为3.8。(当然这个指定的 python 版本如果电脑里面没有安装,那么在构建这个虚拟环境的时候,系统会默认将这个版本的 python 安装在虚拟环境里面。)

2.激活创建的 conda 环境
	conda activate pytorch1130 

激活后即可进入对应环境

3.输入安装指令安装PyTorch

按照上面对应的 pytorch 和 torchvision 的版本,在官网中查找对应 conda 系列下面的 pytorch。然后在刚刚激活好 python 环境的终端输入安装指令。

	// 例如我的 CUDA 版本是 11.6,因此要安装的 pytorch 选择的是 1.13.0 ,同时对应的 torchvision 的版本是 0.14.0
	conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.6 -c pytorch -c nvidia
  • conda install:conda 包管理器的安装命令。
  • pytorch==1.13.0:安装 PyTorch 的版本为 1.13.0。双等好表示精确匹配该版本。
  • torchvision==0.14.0: 安装 Torchvision 的版本为 0.14.0。
  • torchaudio==0.13.0: 安装 Torchaudio 的版本为 0.13.0。
  • pytorch-cuda=11.6: 安装名为 pytorch-cuda 的包,并指定其中需要的 CUDA Toolkit 版本为 11.6。
  • -c pytorch -c nvidia: 这是指定包的来源(channel)。-c pytorch 表示从 PyTorch 的官方 channel 中获取包, -c nvidia 表示从 NVIDIA 的 channel 获取包。

但是这个命令在安装的时候有可能会出问题,报错:

	An HTTP error occurred when trying to retrieve this URL.
	HTTP errors are often intermittent, and a simple retry will get you on your way.

出现这个问题,大概率是因为 anaconde 的服务器在国外,国内下载速度很慢,下载内容较大时常出现问题。此时可以参考清华镜像网的方式来解决:Anaconda 镜像使用帮助
当然也可以通过再次运行安装指令的方式来解决(虽然没啥用,该慢还是慢)。

conda clean -i 用于清理 conda 包管理器的缓存和临时文件。“-i” 参数表示只清理索引缓存。索引缓存是 conda 用来存储软件包和版本信息的本地缓存。当环境中的软件包列表发生变化或更新时,索引缓存可能会过时,因此使用 “conda clean -i” 可以清除旧的索引缓存,以便后续重新下载最新的索引信息。
**注意,**清理索引缓存不会删除已安装的软件包,它只会清理与索引相关的文件。如果需要清理其他类型的缓存,可以使用不同的参数,如 “-p” 清理包缓存等。

如果网络在下载的时候不稳定,产生这个报错:

	CondaError: Downloaded bytes did not match Content-Length 

那么可以使用这个命令。 设置conda下载的 timeout:

	conda config --set remote_read_timeout_secs 600.0

注意::一定要找一个 WIFI 环境好的地方,网速快且稳定。

安装过程中还会出现的问题:

	Downloading and Extracting Packages
                                                                                                                                                                    
	Preparing transaction: done                                                                                                                                         
	Verifying transaction: failed                                                                                                                                       
                                                                                                                                                                    
	CondaVerificationError: The package for cuda-nvcc located at /home/be/anaconda3/pkgs/cuda-nvcc-11.6.124-hbba6d2d_0                                                  
	appears to be corrupted. The path 'bin/__nvcc_device_query'                                                                                                         
	specified in the package manifest cannot be found.    

这个问题我参考这个文档:解决conda安装时出现的CondaVerificationError问题,找到了/home/be/anaconda3/pkgs/cuda-nvcc-11.6.124-hbba6d2d_0文件,然后将其删除。之后就没有问题了。
安装完成之后会报:

	Downloading and Extracting Packages:

	Preparing transaction: done
	Verifying transaction: done
	Executing transaction: done

可以进入创建好的虚拟环境,输入 conda list ,查看安装的一系列库的版本。

神奇的下载网站,这里记录一下:http://download.pytorch.org/whl/torch/

需要离线安装文件,用这个网站可以比较快的下载安装包。

猜你喜欢

转载自blog.csdn.net/weixin_52303102/article/details/133823130