Anaconda+CUDA+cuDNN+Tensorflow2.0环境搭建
Posted 莫河
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Anaconda+CUDA+cuDNN+Tensorflow2.0环境搭建相关的知识,希望对你有一定的参考价值。
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的教程,为防止各位和傻乎乎的我一样))。
(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虚拟环境和其他常用命令我会后续写一篇文章细讲)
-
打开Anaconda Prompt
-
创建虚拟环境
conda create --name tensorflow python=3.7
-
激活虚拟环境
activate tensorflow
Step 2:安装tensorflow
-
使用pip指令
-
pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/
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是否已安装完成
-
新建一个python文件
-
输入下面代码查看是否报错
-
import tensorflow
-
若无报错则说明tensorflow第三方库安装没有问题
Step 5:将tensorflow搭建在GPU上
-
在刚才的python文件内输入
-
from tensorflow.python.client import device_lib print(device_lib.list_local_devices())
-
如果输出结果如上图所示说明你当前只有CPU设备可用,如果有输出GPU设备的各项属性则说明你之前已经搭建过了CUDA+cuDNN的环境
-
接下来开始进行GPU环境搭建
-
以管理员身份打开cmd
-
输入nvidia-smi指令
-
若无该指令则需要手动安装一下Nvidia Driver,建议直接安装百度搜索Nvidia GeForce Experience,这个应用是英伟达官方安装N卡驱动的神器(windows专属)
-
查看Driver Version(驱动版本)和CUDA Version(这个参数并非你已安装的CUDA,而是你驱动可适配的CUDA Toolkit版本)
-
随后查看自己先前是否有安装CUDA Toolkit
- 在控制台输入nvcc -V
-
如果有以上信息则无需再安装CUDA Toolkit
-
如果没有则可以前往https://developer.nvidia.com/cuda-toolkit-archive根据自己适配的CUDA进行安装
-
这里博主选择的是CUDA Toolkit 11.4.0
-
根据自己的电脑系统选择版本下载exe安装就可以了
- CUDA尽量安装在C盘
-
安装完成后重新在控制台上输入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/
-
接下来等待安装完成,安装中途可能会出现需要你输入用于secure boot的密码,reboot重启电脑,会进入Secure Boot,选择第二还是第三个选项(具体不记得了,因为bios模式下截图我还没有学),进入之后命令行输入nvidia-smi
-
若有以上信息则安装成功
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
-
随后reboot重启电脑,命令行输入nvidia-smi, 以及nvcc -V进行验证
-
如有需要安装TensorRT加速库,我也把安装命令放在了下方
sudo apt-get install -y --no-install-recommends libnvinfer7\\
libnvinfer-dev\\
libnvinfer-plugin7
以上是关于Anaconda+CUDA+cuDNN+Tensorflow2.0环境搭建的主要内容,如果未能解决你的问题,请参考以下文章
Anaconda+CUDA+cuDNN+Tensorflow2.0环境搭建
使用 Anaconda install 在 Windows 上获取 CUDA 和 CUDNN 版本
使用 GPU 和 CUDA、cuDNN、Anaconda、RTX 3060 Ti 运行 TensorFlow/Keras
anaconda安装paddle(安装CUDA,CUDNN)
如何在anaconda虚拟环境中安装多个版本的CUDA,cudnn,pytorch,torchvision,torchaudio及进行环境配置手把手教学