天天看點

在Anaconda3下安裝tensorflow-gpu庫的經驗之談1 适用條件2 安裝要求  3 動手安裝4 tensorflow庫代碼測試

    經過一整天的折騰,參考了許多網友的建議後,終于把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。

在Anaconda3下安裝tensorflow-gpu庫的經驗之談1 适用條件2 安裝要求  3 動手安裝4 tensorflow庫代碼測試

  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 安裝要求  3 動手安裝4 tensorflow庫代碼測試

    2、再進入VS網站,下載下傳并安裝VS2017社群版。

在Anaconda3下安裝tensorflow-gpu庫的經驗之談1 适用條件2 安裝要求  3 動手安裝4 tensorflow庫代碼測試

3.3 CUDA庫安裝

     進入CUDA Toolkit Archive網站下載下傳CUDA Toolkit 9.0,以及更新檔patch2、3、4(patch1安裝不上,可以不安裝)。

在Anaconda3下安裝tensorflow-gpu庫的經驗之談1 适用條件2 安裝要求  3 動手安裝4 tensorflow庫代碼測試
在Anaconda3下安裝tensorflow-gpu庫的經驗之談1 适用條件2 安裝要求  3 動手安裝4 tensorflow庫代碼測試

3.4 cuDNN安裝

      登陸官方cuDNN網址下載下傳cuDNN。首先需要注冊一個賬号(注冊過程網頁打開極慢,建議科學上網),然後下載下傳cuDNN v7.4.2版本。

在Anaconda3下安裝tensorflow-gpu庫的經驗之談1 适用條件2 安裝要求  3 動手安裝4 tensorflow庫代碼測試

    安裝方法:

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

    2、将以下檔案複制到

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

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

    (3)Copy <installpath>\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庫的經驗之談1 适用條件2 安裝要求  3 動手安裝4 tensorflow庫代碼測試