资讯专栏INFORMATION COLUMN

Anaconda+CUDA+cuDNN+Tensorflow2.0环境搭建

biaoxiaoduan / 4712人阅读

摘要:图和之间的关系图例与各版本之间的环境依赖关系的原装驱动并不支持,因此需要禁用掉并且重装卡官方驱动。会有很多同学在不知道的情况下安装了,最后导致和无法使用或者无法安装等问题。

前言

​ 这是博主第一次写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:  - defaultsshow_channel_urls: truedefault_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/msys2custom_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_libprint(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.pinsudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pubsudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"sudo apt-get updatewget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.debsudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.debsudo apt-get updatewget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libnvinfer7_7.1.3-1+cuda11.0_amd64.debsudo apt install ./libnvinfer7_7.1.3-1+cuda11.0_amd64.debsudo 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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119690.html

相关文章

  • (通用)深度学习环境搭建:tensorflow安装教程及常见错误解决

    摘要:大家都知道深度学习涉及到大量的模型算法,看着那些乱糟糟的公式符号,心中一定是。以最常用的环境为例。这里强烈推荐版本,因为深度学习动辄几小时几天几周的运行市场,加速会节省你很多时间甚至电费。常见错误找不到指定的模块。 区别于其他入门教程的手把手式,本文更强调因而非果。我之所以加上通用字样,是因为在你了解了这个开发环境之后,那些很low的错误你就不会犯了。 大家都知道深度学习涉及到大量的...

    cyqian 评论0 收藏0
  • 【机器学习】深度学习开发环境搭建

    摘要:打开命令提示符输入出现下面提示说明已经安装成功安装添加的环境变量环境变量中加上的路径,例如。在命令提示符输入安装完成,建立一个全新的环境,例如我们想建立一个叫的开发环境,路径为,那么我们输入安装完成。 工欲善其事,必先利其器。首先我们需要花费一些时间来搭建开发环境。 1.安装python。python是人工智能开发首选语言。 2.安装virtualenv。virtualenv可以为一个...

    galaxy_robot 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<