2020年Tensorflow2-GPU 完整安裝過程總結
Tensorflow2.1將是最後一個支持python2的版本。tensorflow2.1增加了對TPU的支持,同時tf.keras和tf.data這兩個常用的API也得到了很多新的更新。Tensorflow2.1的cuda版本爲10.1,cuDNN版本爲7.6.
Windows 和 Linux 系統的 TensorFlow pip 版本默認支持 GPU。也就是說,如果使用 pip install tensorflow,則版本默認爲是 gpu 版本(原始的 tensorflow-gpu 版本依然存在)。當然,不管有沒有英偉達版本的 GPU,tensorflow 依然能夠運行。
系統要求:
- Python 3.5-3.7
- pip 19.0 或更高版本(需要
manylinux2010
支持) - Ubuntu 16.04 或更高版本(64 位)
- macOS 10.12.6 (Sierra) 或更高版本(64 位)(不支持 GPU)
- Windows 7 或更高版本(64 位)(僅支持 Python 3)
- Raspbian 9.0 或更高版本
- GPU 支持需要使用支持 CUDA® 的卡(適用於 Ubuntu 和 Windows)
注意:必須使用最新版本的 pip
,才能安裝 TensorFlow 2。
硬件要求:
支持以下帶有 GPU 的設備:
- CUDA® 計算能力爲 3.5 或更高的 NVIDIA® GPU 卡。請參閱支持 CUDA 的 GPU 卡列表。
軟件要求:
必須在系統中安裝以下 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,可縮短在某些模型上進行推斷的延遲並提高吞吐量。
# 使用下列終端命令,查看相關信息 nvidia-smi
驅動版本不夠,就自行進行更新。然後下載CUDA,cuDNN工具包。這裏的CUPTI是包含再CUDA中的。不方便下載的,在這裏戳我:[email protected]
CUDA安裝:(10.1)
直接運行.exe文件,第一個目錄爲extraction,這個是指文件提取目錄,不是安裝目錄。注意區分!!!
選擇自定義高級,接下來的目錄爲正式的安裝目錄,記下來。需要配置環境變量!!!!!沒有VS的,直接忽略即可。
cuDNN安裝:(7.6)
準確的說,是cuDNN解壓,下載壓縮包文件之後,進行解壓,放到你指定的目錄下。需要配置環境變量。
上述兩項完成之後,進行環境變量的配置!!!將 CUDA、CUPTI 和 cuDNN 安裝目錄添加到 %PATH%
環境變量中。
例如我的安裝路徑爲:(看自己情況,不要苟同)
CUDA 工具包安裝到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
,同時 cuDNN 安裝到 C:\tools\cuda
,請更新 %PATH%
以匹配路徑:
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%
操作方法爲:找到path環境變量>編輯>新建>然後多次確認。可能會發現,再安裝完CUDA之後,上述有些環境變量已經存在path中了,那就不管這些已經存在的,繼續把沒有出現的添加到環境變量就好了。
使用pip進行安裝tensorflow2:
個人是新建了虛擬環境,名爲tensorflow(你自己隨便取)。過程如下:
# 1.查看當前有那些虛擬環境
conda info --envs
# 2.新建名爲tensorflow的虛擬環境
conda create --name tensorflow python=3.7
# 3.激活虛擬環境tensorflow
conda activate tensorflow
激活新建的虛擬環境tensorflow之後,效果如上圖:
# 4.再當前的虛擬環境中安裝tensorflow,我是用清華源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow
這裏的some-package是指你要安裝的包名,這裏我要安裝tensorflow。注意,這裏是包名,雖然這裏我的包名和虛擬環境名字一樣,注意區分!!!!
安裝完之後,可以查看當前虛擬環境中有哪些包:
# 查看包列表
conda list
可以看到,已經安裝好了。
# 5.將虛擬環境tensorflow添加到jupyter notebook 內核中
# 在當前的名爲tensorflow虛擬環境中安裝好ipykernel
conda install ipykernel
# 6.向jupyter notebook中添加內核,這裏的tensorflow爲虛擬環境名。
python -m ipykernel install --name tensorflow
# 7.打開jupyter notebook,你會驚奇的發現,這裏變了
新建notebook,在new>tensorflow,這樣一來,內核就是你新建的tensorflow
# 8.測試tensorflow安裝成功與否
import tensorflow as tf
print(tf.test.is_gpu_available())
# 上述結果
WARNING:tensorflow:From <ipython-input-1-46ff889b56b7>:2: is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.config.list_physical_devices('GPU')` instead.
True
說明GPU是可用的,這裏的警告是說,這個測試命令即將被拋棄,應該使用tf.config.list_physical_devices(‘GPU’),如下:
import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
# 結果爲
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
好了,測試通過。再來一個程序跑一下:
# 測試程序
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
print('GPU', tf.test.is_gpu_available())
a = tf.constant(2.0)
b = tf.constant(4.0)
print(a + b)
# 結果爲
GPU True
tf.Tensor(6.0, shape=(), dtype=float32)
好了,安裝測試完成,開始使用。