Anaconda下的TensorFlow-gpu 2.0版本环境搭建

文章目录

  • 前言
  • 简介
  • 一、Anaconda安装
    • 1.Anaconda下载
    • 2.Anaconda安装
    • 3.关于pip和conda
    • 4.关于pip下载timeout的解决方法
  • 二、TensorFlow——CPU和GPU
    • 1.TensorFlow CPU版本安装
    • 2.TensorFlow GPU版本安装
  • 三、CUDA和CUDNN安装
    • 1.注意事项
    • 2.下载CUDA和cudnn
      • 2.1 显卡驱动
      • 2.2 CUDA安装
      • 2.3 cudnn安装
    • 3.安装CUDA和cuDNN
      • 3.1 安装CUDA
        • 环境变量配置(重要)
      • 3.2 安装cuDNN
  • 四、安装TensorFlow
    • 1.安装 tensorflow-gpu
    • 2.TensorFlow——Hello World!
  • 五、总结


前言

  Python这门语言最近两年特别火,笔者刚入大二在老师的建议下,开始学习python,在学习的过程中也逐渐感受到python的魅力,后来也因此进入了深度学习的领域,开始了解有关的知识,而我选择的工具是谷歌的深度学习框架TensorFlow(以下简称TF),在安装TF的过程中也遇到了许多困难,在此整理出来,希望能对看到这篇文章的人有所帮助。


简介

  TensorFlow是Google的第二代大规模分布式深度学习框架,它的前身是Google的神经网络算法库DistBelief,TF被广泛应用于各类机器学习(Machine Learning),比较常见的例如Google的神经网络机器翻译等等。
  TF有多种语言接口,在本篇文章中使用的是Python API进行学习。TF有CPU和GPU两种,如果选择GPU版本的TF,就需要CUDA和cudnn的支持,虽然安装比较麻烦,但能够享受到GPU加速效果,相对而言CPU版本则无需这两者的支持,但运算速度相对就比较慢。
  目前python安装有两种选择,一是直接安装python原生的解释器,另一种是通过安装Anaconda这个python的发行版本来管理。本文选择后者。(注:如果同时安装两种会发生冲突)


一、Anaconda安装

1.Anaconda下载

  Anaconda是一个开源的python发行版本,包含大量的科学包,例如numpy、conda等等,如果只需要一部分包,可以选择使用Miniconda这个较小的发行版,(仅包含conda和python)。

下载地址
Anaconda官网下载

(笔者在这里推荐去清华大学的开源软件镜像站下载对应版本的Anaconda,笔者使用的anaconda 3.5.2版本对应python3.6 ,如果需要最新版可在anaconda官网下载最新版)
  注:据笔者了解,如果安装的是py37版本可能在安装TF的过程中出现许多问题,相对而言py36和py35则比较稳定。

清华开源软件镜像站


2.Anaconda安装

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第1张图片
  这一步是选择在此电脑上使用Anaconda的用户,可以选择just me(也就是只有当前登录的账户可以使用),而All Users则是在电脑上创建的所有用户都可以使用。

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第2张图片

  第二步是安装路径,因为笔者选择的是完整版的Anaconda,占据空间比较大,所以安装到了D盘,而非C盘。

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第3张图片

  第三步:上面的选项是自动将Anaconda的环境变量配置好,下面的选项是将Anaconda设置为默认的Python解释器。因为笔者选择了用Anaconda来管理Python,所以两个都选了。当然上面的选项可以不选,但是安装之后需要手动的设置环境变量


3.关于pip和conda

  有人也许会感到疑惑,为什么我们要用Anaconda下的conda去管理我们的python包,通常的python用pip去管理不也是挺好的吗,在这里我简单说一些两者的共同之处和不同之处。

  • Conda和pip通常被认为是完全相同的,它们的某些功能有重叠,但它们的设计目的是不一样的。Pip是Python Packaging Authority 推荐的用于从 Python Package Index 这个网站上安装包的工具。后者可能要求系统安装兼容的编译器和库。
  • Conda是跨平台的包和环境管理器,除了可以安装Python软件包,还可以安装包含C或C++库、R包或者其他的软件。这是两者的关键区别,Pip安装Python包,而Conda可以安装用其他语言编写的包。在使用pip之前,必须通过安装Python解释器,而Conda可以直接安装Python包和Python解释器。
  • 另一个区别是conda能创建包含不同版本的Python或其他软件包的隔离环境。在使用数据科学工具时,非常有用,因为不同的工具可能包含冲突的要求。把不同的环境隔离就比较方便了。
  • 当然,两者是可以结合起来用的,因为有些包只能通过pip安装。conda虽然可以下载的包很多,但相比pip还是少了一些。
  • 综上所述,pip和conda的使用方法都是要学的

4.关于pip下载timeout的解决方法

  不管是pip还是conda,当我们通过这两种方法安装包时,由于这些包是在外网,所以免不了出现网速过慢导致下载失败的原因,我们的解决方法也有两种。

  • 第一就是更改默认源,这种方法可以自行搜索,网上教程很多,笔者并没有选择使用这种一劳永逸的方法
  • 第二是加参数,显示指定要使用哪一个源来下载,笔者使用的是清华的源。下面给出一些地址。
Name URL:pip
清华 https://pypi.tuna.tsinghua.edu.cn/simple/
中科大 https://pypi.mirrors.ustc.edu.cn/simple/
阿里云 https://mirrors.aliyun.com/pypi/simple/
豆瓣 http://pypi.douban.com/simple/

conda解决办法
传送门

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第4张图片

(注:.condarc文件可以在C盘用户目录下找到,最简单直接的方法就是将图中配置信息直接复制,覆盖目标文件内容


Example:

conda install -c 镜像名 tensorflow-gpu=2.0.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ tensorflow-gpu==2.0.0

二、TensorFlow——CPU和GPU

1.TensorFlow CPU版本安装

  安装cpu版本相对于gpu版本就简单的多,我们通过conda命令创建虚拟环境来安装。
  第一步打开 Anaconda 的命令行界面Anaconda Prompt

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第5张图片
如果用不惯命令行界面也可以选择使用Anaconda的图像界面——Anaconda Navigator,可以自行摸索使用。

进入命令行界面后,可以看一下当前有几个环境,输入

conda env list

刚开始只有一个 base 环境
下面来创建 python 环境,笔者选择的是py3.6,输入
注:笔者已经将conda的源设置为清华的源

conda create -n tensorflow python=3.6

首先查看是否创建成功

conda env list

在这里插入图片描述
然后激活环境

activate tensorflow

如果要退出当前环境回到base环境,则输入

deactivate

接下来进入tensorflow环境,输入下列指令安装TensorFlow-cpu

conda install tensorflow

2.TensorFlow GPU版本安装

  注意事项:目前使用GPU版本的TF,要求电脑显卡为NVIDIA公司的产品。这是因为安装GPU版本的 tf 需要CUDA和cudnn的支持,而CUDA和cudnn支持N卡。
  由于如果在新的虚拟环境中安装TensorFlow-gpu过于麻烦,笔者现在没有找到一个完美的方法,如果以后有好的办法我会及时更新。我们可以在base环境下直接安装TensorFlow-gpu。


三、CUDA和CUDNN安装

1.注意事项

CUDA和cudnn的版本是一一对应的,而不同的版本支持的tensorflow-gpu的版本也不一样,目前据笔者了解,CUDA基本都可以支持 tensorflow-gpu 1.xxxx 版本,如果选择的是 tensorflow 2.xxxx 版本的则需要 CUDA10之后的版本。

由于笔者刚刚接触 tensorflow ,所以我选择的是2.0版本的tf-gpu,我也建议如果你是初学者还是学习新版的比较好。

下面介绍如何安装:

2.下载CUDA和cudnn

2.1 显卡驱动

下面给出目前版本需求

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第6张图片
显卡驱动查看及升级方法

打开NVIDIA控制面板,点开左下角系统信息,查看版本号。
Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第7张图片Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第8张图片Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第9张图片
注:要安装 TF2.0以后的版本需要升级驱动,下载方法如下,进入官网
NVIDIA官网传送门

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第10张图片
打开GEFORCE驱动程序

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第11张图片

下载 GeForce Experience 程序升级驱动

2.2 CUDA安装

建议大家下载 CUDA10 和对应的cuDNN

下面给出链接:
CUDA下载传送门
进入后是最新版的CUDA下载,下面介绍如何找到旧版CUDA
Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第12张图片

点击 Release Notes

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第13张图片
点击 older

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第14张图片
自行选择版本

2.3 cudnn安装

cuDNN传送门
进入后需要登陆加入NVIDIA的一个计划,可以选择用QQ或者微信登录,有可能网速较慢。
也有可能会填写一些信息
完成后进入下载界面
Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第15张图片
如果需要更早的版本,可以点击图中下方的 Archived cuDNN Releases查看归档版本。一定要注意版本和CUDA对应。


3.安装CUDA和cuDNN

3.1 安装CUDA

笔者选择的VS2017 community + CUDA10.0 + cuDNN10.0来进行安装

注: CUDA的安装最经常遇到的错误就是提示 visual studio integration ,这是因为你的电脑上安装有微软的Visual Studio这个IDE,而CUDA的安装程序会检测出电脑已经有这个集成环境了,面对这个问题,很多人会选择在CUDA的自定义安装中取消掉Visual Studio这个选项,其造成的结果就是在VS中创建新项目的时候找不到CUDA这个选项。
  然后我去翻了一下CUDA10的文档(多看看官方文档还是有用的

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第16张图片
发现我装的是VS2019,CUDA10.2倒是支持VS2019,但是后续安装TensorFlow时,又会出现一些找不到CUDA模块的问题, 所以还是用CUDA10吧。果然换了VS2017,再来安装CUDA10就成功了。

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第17张图片


环境变量配置(重要)

成功安装CUDA后,还有一个重要的步骤:配置环境变量

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第18张图片
我们可以看到系统变量下已经有CUDA_PATH了,但这还不够,还要添加一些
打开环境变量下的 Path 路径,可以看到
Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第19张图片
一开始只有上面两个路径,我们需要添加第三条路径,也就是对应目录下 \lib\x64 这个目录。


3.2 安装cuDNN

  对于TensorFlow而言,真正实现加速的是cuDNN,然后cuDNN调用的是CUDA显卡驱动。所以我们最后要配置cuDNN这个模块。
  cuDNN全称为 NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计的基于GPU的加速库。

下载好对应版本的cuDNN后解压后,将里面的

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第20张图片
这三个目录复制到CUDA的安装目录下 例如笔者这样 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
粘贴合并掉文件就行了

Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第21张图片

注:到这里就算是成功安装CUDA和cuDNN了


四、安装TensorFlow

1.安装 tensorflow-gpu

进行到这一步,基本的环境已经搭建完成,而安装 tf-gpu 这一步,根据笔者的了解,其实大部分遇到的问题是不同包的版本和 tf 版本的匹配问题, 我们可以根据 cmd 中提示的错误或警告信息在网上找到如何去升级或降级相应的包
在这里我简单列出一些可能会遇到的错误,当然不一定只有这些

  1. setuptools工具包版本过低(如果用镜像无法升级,可直接 pip 升级,不加镜像)。
  2. pip 版本过低,升级就好
  3. wrapt 无法卸载升级,下面有解决方法
  4. 其他一些包的问题,都可以在网上搜到

笔者选择使用 pip 来安装 tensorflow-gpu
输入命令如下
先升级一下pip,输入

python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/

然后开始安装tensorflow-gpu

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ tensorflow-gpu==2.0.0

关于安装哪个 tf 的版本,可以自行选择。

出现错误无法完全卸载 wrapt ,这个错误笔者在网上找了一下许多人遇到过,具体的解决方法如下:
在这里插入图片描述
解决方法

pip install --upgrade --ignore-installed wrapt enum34 simplejson netaddr -i https://pypi.tuna.tsinghua.edu.cn/simple/

最后就可以继续我们的TensorFlow-gpu的安装

在这里插入图片描述
安装成功

2.TensorFlow——Hello World!

因为我们安装的是TensorFlow-gpu 2.0版本,其中的一些方法还是和1.0版本不一样的,下面让我们来开始TensorFlow的学习吧。
下面是TensorFlow官方给出的一段代码

import tensorflow as tf
mnist = tf.keras.datasets.mnist
 
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
 
model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
 
model.fit(x_train, y_train, epochs=5)

运行结果如下
Anaconda下的TensorFlow-gpu 2.0版本环境搭建_第22张图片


下面也给出1.0版本的 hello world

import tensorflow as tf
hello = tf.constant("Hello World!")
sess = tf.Session()
sess.run(hello)

五、总结

  如果你能坚持看到最后,这就是对笔者最好的肯定。学习的道路是枯燥的,但是我们唯有坚持才能获得成功。期待我们能够为TensorFlow社区做出更多的贡献。

你可能感兴趣的:(Anaconda下的TensorFlow-gpu 2.0版本环境搭建)