Anaconda+CUDA+cuDNN+Tensorflow2.0环境搭建
前言
? 这是博主第一次写CSDN的博客,本人还是大学生一枚,如果有忽略的点请各位大哥大姐们指正。 ? 今年博主就是个大四萌新了,想着继续冲击一把读研,研究生想走的方向也是深度学习相关方向。因此把原本电脑上的win10换成了ubuntu,换了之后在安装Tensorflow和pytorch的路上疯狂采坑,接连重装了三次Ubuntu,一度将Ubuntu20.04降版本为18.04,而关于我在学习使用Ubuntu时的问题和解决方案我也会在后续的文章中列出。
搭建环境初期遇到的问题
? 博主在学习使用初期是在本机上搭的炼丹炉,而后来发现了一系列问题诸如:
? (1)目前主流的深度学习框架如PyTorch和Tensorflow基本上是基于N卡的GPU,需要使用者安装CUDA支持,而pytorch和tensorflow的版本对cudatoolkit又有着不同的对应版本要求,不同版本的cudatoolkit可能在运行框架代码时无法找到对应的文件。cudatoolkit版本与显卡驱动版本之间,甚至针对linux kernel和gcc/g++版本之间也有互相对应(参考图1-1和图1-2)。过于繁杂的对应关系,导致在环境搭建时及其容易导致环境冲突或者环境不满足,最后无法正常运行甚至把操作系统搞坏不得不重装(我之前不熟悉Ubuntu apt的功能时为了重新安装g++删除旧版本的时候不小心把操作系统搞坏过,最后导致XServer、apt等一系列功能全部失效,不得不重装(后期博主也会发一份重装Ubuntu的教程,为防止各位和傻乎乎的我一样))。
图1-1 CUDA和Driver之间的关系
图1-2 例:CUDA 11.4与Linux各版本之间的环境依赖关系
? (2)Linux的原装驱动Nouveau并不支持CUDA,因此需要禁用掉Nouveau并且重装N卡官方驱动。会有很多同学在不知道的情况下安装了cuda,最后导致pytorch和tensorflow无法使用或者CUDA无法安装等问题。而且更换显卡驱动的时候也会出一些问题,比如博主在更换为N卡官方驱动的时候,当时使用的是Ubuntu20.04,不知为何在进入bios里关掉Enable Security Boot的时候,直接就进不去了,导致无法正常安装驱动,不得已才降版本为Ubuntu18.04,20.04虽然速度快的多,但是bug同样也多,尤其是snap商店不显示应用的问题。
? (3)在安装完成CUDA之后,还需要安装cuDNN这一GPU加速库,否则无法正常运行tensorflow,这些下文都会讲到
? (4)之前我的朋友想让我买个AMD的显卡外接训练数据,但是A卡并不支持CUDA,虽然可以将CUDA代码转为OpenCL,但是想要适配A卡的生产环境极其麻烦,这边不考虑A卡。
? 本文是关于如何在win10以及Ubuntu环境下搭建Anaconda3+CUDA+cuDNN+tensorflow深度学习环境,我会分步骤分系统慢慢给同学们讲,有人会问为什么不用原生python呢,是因为anaconda它香啊,conda和pip的差别我不在这里赘述了,大家可以参考知乎上一篇文章https://www.zhihu.com/question/395145313。博主的anaconda是完全使用命令行的,因为我的Navigator第一次打不开,后来也就没再用过。后续随着学习的深入我应该会出一篇关于pycharm或vscode(我主要还是用pycharm作为IDE)+docker的tensorflow炼丹炉搭建教程。
参考硬件环境
这里是我使用的两台笔记本电脑的性能参数
-
HP OMEN
- OS: Windows 10 Home Edition
- CPU: Intel? Core? i7-9750H CPU @ 2.60GHz
- Memory: 2*8G DDR4 2666MHZ
- GPU: Nvidia Geforce RTX2060
-
DELL Precision 7530
- OS: Ubuntu 18.04 LTS
- CPU: Intel? Core? i7-8750H CPU @ 2.20GHz
- Memory: 2*8G DDR4 2666MHZ
- GPU: Nvidia Quadro P1000
Anaconda3
- 备注:博主这边虽然是通过清华镜像站安装的anaconda3,但是我并没有使用清华的conda或者pip镜像,我是直接采用科学上网(懂的都懂)的办法安装的第三方库,但是我依然会在下面附上使用镜像和设置镜像的方法
Win10
安装
-
首先进入清华镜像站下载Anaconda3,我这边使用的是Anaconda3-5.3.1版本 -
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ -
下载完成后点击exe执行文件安装,注意不要安装vscode,我尝试过根本安装不上
使用
- 在win10中我并不太喜欢直接用shell输入conda activate环境来进入anaconda的虚拟环境,我喜欢直接使用anaconda提供的Anaconda Prompt,它是一种和shell十分相似的命令行环境,好处就是不需要再添加anaconda的环境变量也能够执行conda的一系列命令
- 运行方式:右键以管理员身份(建议,因为环境存在读写权限问题)运行Anaconda Prompt
镜像
-
与pip相似,如果采用默认的channel进行下载,在国内是非常慢的,因此需要采用镜像,在配置anaconda的国内源镜像前,我这边先把pip国内镜像源和使用方法附在下面
镜像名称 | 镜像地址 |
---|
阿里云 | http://mirrors.aliyun.com/pypi/simple/ | 豆瓣 | http://pypi.douban.com/simple/ | 清华大学 | https://pypi.tuna.tsinghua.edu.cn/simple/ | 中国科学技术大学 | http://pypi.mirrors.ustc.edu.cn/simple/ | 华中科技大学 | http://pypi.hustunique.com/ |
pip install [module_name] -i [mirror_address]
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/
-
Anaconda镜像安装(以清华源为例,win10和Ubuntu步骤相同,因此不再赘述)
conda config --set show_channel_urls yes
这个命令会在当前目录下生成配置文件.condarc
win10中用任意文本编辑器打开即可 ubuntu中使用命令 sudo gedit .condarc
将以下配置信息复制粘贴进.condarc文件保存 channels:
- defaults
show_channel_urls: true
default_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
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
如果使用conda install 任意包显示清华镜像源的信息则说明配置成功
Ubuntu
安装
-
依然是先进入清华镜像站下载Anaconda3-5.3.1 -
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ -
这次我们下载的是 -
由于我们是64位的系统,因此下载x86_64的版本 -
随后进入到下载目录 cd 下载
-
输入命令运行安装文件 bash Anaconda3-5.3.1-Linux-x86_64.sh
博主由于已经安装过anaconda了,因此将安装文件换了个位置,你如果是在谷歌或者火狐浏览器上下载的话默认是放在"~/下载"这个目录里 -
然后就是看一堆license,copyright声明了,这些大家一定不要快速敲回车,容易进入到下一步了还在摁回车 -
随后是问你同不同意这个license,不同意就无法安装,因此我们输入yes -
接下来是让你选择安装的路径,默认是安装在当前用户的家目录下,由于博主已经安装过了,所以博主将目录改到我挂载的其中一个硬盘上(关于Ubuntu开机自动挂载硬盘的知识我也会在后面介绍) -
接下来默默等待进入下一步就行 -
接下来它会提示是否需要initialize Anaconda,这个其实是为你的用户添加环境变量,由于Ubuntu中没有prompt,因此我们使用shell来进行conda命令操作,因此我们输入yes(由于博主已经安装过了,不想再动环境变量,就输了no) -
接下来会问你是否需要安装VSCode,这里我们选择no,似乎是因为Anaconda安装包VSCode配置的问题,我们没法成功安装上VSCode,但是后续我们可以自行安装VSCode,这个不用担心 -
安装完成 -
我们来验证一下,输入 conda -V
或者 conda --version
若显示以下信息说明安装成功
Tensorflow环境搭建
参考https://www.tensorflow.org/install/gpu?hl=zh_cn
Win10
Step 1:创建虚拟环境(关于Anaconda虚拟环境和其他常用命令我会后续写一篇文章细讲)
Step 2:安装tensorflow
Step 3:PyCharm添加虚拟环境
-
打开pycharm–>File–>New Project -
项目存放位置自定 -
选择编译器Previously configured interpreter -
点击路径后的省略号进入Add Python Interpreter -
选择Conda Environment -
点击Interpreter路径后的省略号进入Select Python Interpreter -
选择你Anaconda3目录下的envs下的tensorflow目录,并选择里面的python.exe文件 -
一直点OK最后点击create
Step 4:验证tensorflow是否已安装完成
Step 5:将tensorflow搭建在GPU上
-
如果输出结果如上图所示说明你当前只有CPU设备可用,如果有输出GPU设备的各项属性则说明你之前已经搭建过了CUDA+cuDNN的环境 -
接下来开始进行GPU环境搭建 -
以管理员身份打开cmd -
输入nvidia-smi指令 -
若无该指令则需要手动安装一下Nvidia Driver,建议直接安装百度搜索Nvidia GeForce Experience,这个应用是英伟达官方安装N卡驱动的神器(windows专属) -
查看Driver Version(驱动版本)和CUDA Version(这个参数并非你已安装的CUDA,而是你驱动可适配的CUDA Toolkit版本) -
随后查看自己先前是否有安装CUDA Toolkit
-
如果有以上信息则无需再安装CUDA Toolkit -
如果没有则可以前往https://developer.nvidia.com/cuda-toolkit-archive根据自己适配的CUDA进行安装 -
这里博主选择的是CUDA Toolkit 11.4.0 -
根据自己的电脑系统选择版本下载exe安装就可以了
-
安装完成后重新在控制台上输入nvcc-V查看是否安装完成
- cudnn的安装与CUDA挂钩,我直接放csdn的教程了,而且比较复杂,我一会儿传群里,你们就不用去官网下载了
-
接下来开始cuDNN的安装
- 前往官网https://developer.nvidia.com/rdp/cudnn-archive
- 根据你CUDA的版本安装cuDNN,我这边选的是cuDNN v8.2.2,选择windows x64的版本
- 随后他会提醒你NVIDIA Developer Program需要会员资格,因此需要你去注册一个Nvidia的账号,再输入你相关机构和使用目的的信息,博主这边输入的是自己的学校
- 下载完成之后解压缩,拷贝到你的cuda安装目录下即可
-
安装完成后再重新跑代码则可得GPU的参数
Ubuntu
? 在ubuntu上创建虚拟环境、安装tensorflow第三方类库以及检验环境方法是完全一样的,下面我着重讲解一下Ubuntu18.04(CUDA 11.4)GPU支持的搭建,而且注意,不同的Ubuntu方法可能有差别,具体参考官方网站https://www.tensorflow.org/install/gpu?hl=zh_cn
? 还有一点要注意的,以下步骤尽量不要开梯子下,博主之前用梯子屡次下载不成功
? 因为之前安装过,图片就先不放了
Step 1:更改驱动
? 博主曾经因为手动安装驱动出现了诸如Security Boot进入黑屏、Nouveau驱动禁用后导致电脑可视化进不去等问题,后来重装了三遍最后确定了一个比较稳定的方案。
- Ubuntu本身自带一个应用叫软件和更新,如果你是正常安装的Ubuntu(非精简安装),在附加驱动中应该会有不同版本的driver,默认是Linux自带的Nouveau驱动,接下来直接选择自己显卡对应支持的显卡驱动版本就可以了,具体版本可以去Nvidia官网上查询https://www.nvidia.cn/geforce/drivers/
Step 2:添加Nvidia仓库
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt install ./libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt-get update
Step 3:安装CUDA和cuDNN
sudo apt-get install --no-install-recommends cuda-11-4 libcudnn libcudnn8-dev
sudo apt-get install -y --no-install-recommends libnvinfer7\
libnvinfer-dev\
libnvinfer-plugin7
|