Tensorflow 2.1 GPU 安裝和測試
-
- 1. 硬體要求
- 2. 軟體要求
-
- 簡單的描述一下它們的功能
- 3. 安裝步驟
-
- 3.1. nvidia 驅動可以到這個位址下載下傳, 我的顯示卡是RTX 2070的,你可以根據你的顯示卡下載下傳驅動**
- 3.2. 下載下傳Cuda
- 3.3. 下載下傳Cudnn
- 3.4. 運作這個指令安裝tensorflow 2.1 gpu 版本
- 3.5. 用tensorflow 代碼測試是不是安裝成功
- 4. 解決問題
-
-
- 4.1 如果你運作Keras的RNN或者LSTM時,遇到下面問題
-
1. 硬體要求
支援以下帶有 GPU 的裝置:
CUDA® 計算能力為 3.5 或更高的 NVIDIA® GPU 卡。請參閱支援 CUDA 的 GPU 卡清單。
2. 軟體要求
必須在系統中安裝以下 NVIDIA® 軟體:
NVIDIA® GPU 驅動程式:CUDA 10.1 需要 418.x 或更高版本。
CUDA® 工具包:TensorFlow 支援 CUDA 10.1(TensorFlow 2.1.0 及更高版本)
CUDA 工具包附帶的 CUPTI。
cuDNN SDK(7.6 及更高版本)
(可選)TensorRT 6.0,可縮短在某些模型上進行推斷的延遲并提高吞吐量
參考位址: https://tensorflow.google.cn/install/gpu
簡單的描述一下它們的功能
nvidia:是顯示卡,主要是下載下傳它的驅動
Cuda:是NVIDIA推出的用于自家GPU的并行計算架構,也就是說CUDA隻能在NVIDIA的GPU上運作,而且隻有當要解決的計算問題是可以大量并行計算的時候才能發揮CUDA的作用。CUDA的本質是一個工具包(ToolKit)
cuDNN : cuDNN是一個SDK,是一個專門用于神經網絡的加速包,
版本資訊
N卡驅動版本Geforce- Rtx 2070 SUPER,
Cuda 10.1 ,
Cudnn: cudnn-10.1-windows10-x64-v7.6.5.32,
tensorflow 2.1
3. 安裝步驟
3.1. nvidia 驅動可以到這個位址下載下傳, 我的顯示卡是RTX 2070的,你可以根據你的顯示卡下載下傳驅動**
https://www.nvidia.com/download/index.aspx?在這裡插入圖檔描述" src="https://img-blog.csdnimg.cn/20200315170249624.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2tlZXBwcmFjdGljZQ==,size_16,color_FFFFFF,t_70" />
運作 這個指令看N 卡的驅動的版本号 ----nvidia-smi

3.2. 下載下傳Cuda
CUDA的下載下傳位址為:https://developer.nvidia.com/cuda-downloads
運作這個指令檢視Cuda 的資訊
. nvcc -V
3.3. 下載下傳Cudnn
https://developer.nvidia.com/rdp/cudnn-download
下載下傳後,加它相應的路徑到環境變量裡。
注意:下載下傳這個比較麻煩,要新增賬號,還有翻牆才能搞,我當時用VPN 才能新增賬號。
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\libx64;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include;%PATH%
SET PATH=C:\tools\cuda\bin;%PATH%
3.4. 運作這個指令安裝tensorflow 2.1 gpu 版本
conda install tensorflow-gpu==2.1.0
因為我已經安裝
3.5. 用tensorflow 代碼測試是不是安裝成功
import tensorflow as tf
import os
#os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
a = tf.constant(1.)
b = tf.constant(2.)
print(a+b)
print(tf.__version__)
print('GPU:', tf.config.list_physical_devices('GPU'))
print(tf.test.is_gpu_available())
運作結果
tf.Tensor(3.0, shape=(), dtype=float32)
2.1.0
GPU: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
True
4. 解決問題
4.1 如果你運作Keras的RNN或者LSTM時,遇到下面問題
錯誤:Fail to find the dnn implementation. [Op:CudnnRNN]解決辦法
使用的版本為tensorflow2.x
原因:gpu記憶體的問題
解決辦法:
# 設定gpu記憶體自增長
gpus = tf.config.experimental.list_physical_devices('GPU')
print(gpus)
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)