在Anaconda3下安装tensorflow-gpu库的经验之谈

    经过一整天的折腾,参考了许多网友的建议后,终于把tensorflow-gpu库安装成功了,现将安装经验总结如下:

1 适用条件

     本经验适用于win10操作系统下的版本5.2.0的Anaconda3,理由是该版本对应Python3.6,而比此版本高的Anaconda3配套的是Python3.7,目前TensorFlow对Python3.7支持不够友好,导致安装出错。TensorFlow对Python版本的要求将在下面介绍,理论上安装搭载相应Python版本的Anaconda3都应该可以成功安装TensorFlow库。

2 安装要求

2.1 系统要求 

      TensorFlow库的官方说明中对系统的要求如下:

  • Ubuntu 16.04 or later (64-bit)
  • macOS 10.12.6 (Sierra) or later (64-bit) (no GPU support)
  • Windows 7 or later (64-bit) (Python 3 only)
  • Raspbian 9.0 or later

2.2 硬件及软件要求

     本文主要介绍tensorflow-gpu库的安装,所以只介绍关于GPU硬件及软件的要求。有关tensorflow库(CPU版)的安装对此一般不做要求,所以相对要简单许多。

2.2.1 硬件要求

      tensorflow-gpu要求电脑搭载CUDA算力在3.5及以上的NVIDIA GPU显卡,具体可登陆CUDA-enabled GPU cards检查你的GPU是否达到要求。

2.2.2 软件要求

      以下是tensorflow-gpu对NVIDIA GPU显卡的软件要求:

  • NVIDIA® GPU drivers —CUDA 9.0 requires 384.x or higher.
  • CUDA® Toolkit —TensorFlow supports CUDA 9.0.
  • CUPTI ships with the CUDA Toolkit.
  • cuDNN SDK (>= 7.2)
  • (Optional) NCCL 2.2 for multiple GPU support.
  • (Optional) TensorRT 4.0 to improve latency and throughput for inference on some models.

    tensorflow-gpu库对CUDA及cuDNN的要求如下图,建议下载CUDA9.0以及cuDNN v7.4.2。

  3 动手安装

3.1 Anaconda3安装

      由于官方上只提供最新版本的Anaconda3下载,考虑到与tensorflow-gpu库的兼容问题,不建议安装最新版的Anaconda3软件。可去清华大学开源软件镜像站下载旧版Anaconda3,这里以64位windows系统下的Anaconda3-5.2.0版本为例。

       建议安装目录中不要出现空格符号,一般按默认目录安装即可。

       安装完成后,进入Anaconda Prompt控制台,输入以下指令先把pip版本升级到最新版(18.1.0)

python -m pip install --upgrade pip

3.2 VC库安装  

     1、打开微软网站,下载并安装以下两个库。

在Anaconda3下安装tensorflow-gpu库的经验之谈_第1张图片

    2、再进入VS网站,下载并安装VS2017社区版。

在Anaconda3下安装tensorflow-gpu库的经验之谈_第2张图片

3.3 CUDA库安装

     进入CUDA Toolkit Archive网站下载CUDA Toolkit 9.0,以及补丁patch2、3、4(patch1安装不上,可以不安装)。

 

在Anaconda3下安装tensorflow-gpu库的经验之谈_第3张图片

在Anaconda3下安装tensorflow-gpu库的经验之谈_第4张图片

3.4 cuDNN安装

      登陆官方cuDNN网址下载cuDNN。首先需要注册一个账号(注册过程网页打开极慢,建议科学上网),然后下载cuDNN v7.4.2版本。

在Anaconda3下安装tensorflow-gpu库的经验之谈_第5张图片

    安装方法:

    1、解压cudnn-9.0-windows10-x64-v7.zip

    2、将以下文件复制到

    (1)Copy \cuda\bin\cudnn64_7.dll to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin.

    (2)Copy \cuda\ include\cudnn.h to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include.

    (3)Copy \cuda\lib\x64\cudnn.lib to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64.

   3、打开“运行”-“control sysdm.cpl”-高级-环境变量,确保以下配置路径正确。

 Variable Name: CUDA_PATH 
 Variable Value: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

3.5 tensorflow-gpu库安装

      至此,安装tensorflow-gpu库的所有要去条件都已具备,下面可以安装tensorflow-gpu库。Anaconda3自带的Spyder IDE界面与Matlab相似,借助该IDE可以很方便地进行深度学习程序编写。下面以Spyder为例,介绍如何安装tensorflow-gpu库。

      打开Spyder后,在控制台输入!pip install tensorflow-gpu指令,等待片刻后,软件将自动将tensorflow-gpu库安装上。

4 tensorflow库代码测试

      下面给出了tensorflow库的CPU运行和GPU运行时间比较代码,其中为了提高对比差异,刻意将第二层的单元数设置为10000。运行结果显示,基于GPU的tensorflow库运行效率果然很高,计算效率几乎是CPU运行效率的10倍!

"""神经网络框架搭建与测试"""


import tensorflow as tf
from tensorflow import keras
import numpy as np
import time

# 获取数据
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

train_images = train_images / 255.0
test_images = test_images / 255.0

# 构建模型
#with tf.device("/CPU:0"):
with tf.device("/device:GPU:0"):
    time_start = time.time()
    model = keras.Sequential([
        keras.layers.Flatten(input_shape=(28, 28)),
        keras.layers.Dense(10000, activation=tf.nn.relu),
        keras.layers.Dense(10, activation=tf.nn.softmax)
    ])
    
    model.compile(optimizer=tf.train.AdamOptimizer(),
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])

# 训练模型
model.fit(train_images, train_labels, batch_size=32, epochs=5)

time_end = time.time()
#print("The used time for CPU is %.2fs" %(time_end-time_start))
print("The used time for GPU is %.2fs" %(time_end-time_start))

# 评估准确率
#test_loss, test_acc = model.evaluate(test_images, test_labels)
#print("Test accuracy: ", test_acc)

# 预测
#predictions = model.predict(test_images)
#prediction_labels = np.argmax(predictions, axis=1)

在Anaconda3下安装tensorflow-gpu库的经验之谈_第6张图片

你可能感兴趣的:(Python,Anaconda3)