【安裝】Windows下 TensorFlow 的安裝(包含:CUP版、GPU版、CUDA、cuDNN)——最後更新日期 2018-05-30
____tz_zs
您可以直接使用pip安裝tensorflow,只需一行程式碼就安裝好了。
cpu版:
pip3 install --upgrade tensorflow
·
gpu版:
pip3 install --upgrade tensorflow-gpu
·
但是,推薦您使用Anaconda,用Anaconda可以建立和管理虛擬環境,並能方便的安裝和管理三方庫,將tensorflow安裝在虛擬環境中也能避免不必要的干擾。
1.安裝Anaconda
我使用的是Anaconda整合的開發環境,預設的python版本為3.6。
2.建立虛擬環境
TensorFlow對3.5版本python支援比較好,我們用Anaconda建立一個python3.5的環境(現在用3.6也可以,據說已經完美支援了)。
開啟Anaconda Prompt,輸入:
conda create -n tensorflow python=3.5
·
當然,直接在Anaconda Navigator的Environments建立環境也是一樣的,環境名稱我取作了tensorflow。
3.啟用環境
在輸入以下命令,啟用環境
activate tensorflow
·
其實就是啟用切換到tensorflow這個虛擬環境下,與在Environments中直接點選來啟用切換環境是一樣的
4.安裝cpu版的TensorFlow
比較簡單,直接輸入以下命令安裝就可以了
·
pip install tensorflow
·
5.安裝gpu版的TensorFlow
如果gpu支援,可以安裝gpu版的
pip install tensorflow-gpu
·
因為需要GPU加速,我們還需要安裝cuda和cuDnn(專門為deep learning準備的加速庫)。
(1)安裝CUDA:
直接去下載,安裝
cuda安裝完成後預設的環境變數配置CUDA_PATH是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
但是這樣不能直接訪問到bin和lib\x64下的程式包
在path中加上這兩個路徑:
(2)安裝cuDNN
下載 cudnn 需要你在官網填一些表,註冊成開發者。
下載下來就是一個壓縮包,解壓把下面這些檔案複製到相應位置即可
C:\cuda\bin\cudnn64_5.dll —> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
C:\cuda\include\cudnn.h —> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
C:\cuda\lib\x64\cudnn.lib —> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
6.可能遇到的問題:
如果import tensorflow時,報了以下的類似錯誤,是因為cuda的相關的dll的問題
- 可能原因及解決辦法一:步驟5第二步沒有配置path(有些教程並沒有寫這一步,要注意)
- 可能原因及解決辦法二:是你安裝的是更高版本的cuDNN的問題,如:cuDNN 6.0。降級成5.1的就可以了(根據github上的討論,應該是版本匹配的問題 | 問題討論地址)
- 可能原因及解決辦法三:安裝一個Visual Studio 2015 Community一勞永逸(還是dll的問題,方法來自某篇問答)
·
File "C:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 18, in swig_import_helper
return importlib.import_module(mname)
File "C:\Anaconda3\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 666, in _load_unlocked
File "<frozen importlib._bootstrap>", line 577, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 906, in create_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\tensorflow\python\__init__.py", line 66, in <module>
from tensorflow.python import pywrap_tensorflow
File "C:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 21, in <module>
_pywrap_tensorflow = swig_import_helper()
File "C:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 20, in swig_import_helper
return importlib.import_module('_pywrap_tensorflow')
File "C:\Anaconda3\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_pywrap_tensorflow'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import *
File "C:\Anaconda3\lib\site-packages\tensorflow\python\__init__.py", line 72, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 18, in swig_import_helper
return importlib.import_module(mname)
File "C:\Anaconda3\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 666, in _load_unlocked
File "<frozen importlib._bootstrap>", line 577, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 906, in create_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\tensorflow\python\__init__.py", line 66, in <module>
from tensorflow.python import pywrap_tensorflow
File "C:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 21, in <module>
_pywrap_tensorflow = swig_import_helper()
File "C:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 20, in swig_import_helper
return importlib.import_module('_pywrap_tensorflow')
File "C:\Anaconda3\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_pywrap_tensorflow'
Failed to load the native TensorFlow runtime.
·
寫在最後
新版Anaconda的庫裡已經有整合tensorflow,直接勾選安裝,也是可以直接使用的。不過沒有深入使用,不知道有沒有問題,然後就是tensorflow的版本不是最新的。
補充:根據官方說法“ conda軟體包是社群支援的,沒有正式的支援。也就是說,TensorFlow團隊既不測試也不維護這個conda軟體包。使用該軟體包需要您自擔風險。”
2018年1月3日補充
2、從原始碼安裝TensorFlow(使用原始碼安裝可以支援不同的CUDA/CuDNN版本,但因為編譯工具Bazel在windows上還不大成熟,所以暫不推薦)
2018年5月30日補充
我之前的環境版本應該是:Windows 10 + Python 3.5 + cuDNN 5.1 + CUDA 8.0 + Tensorflow 1.2
這次重灌了更新的版本: tensorflow 1.8版本,需要CUDA 9.0
ImportError: Could not find 'cudart64_90.dll'.
TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable.
Download and install CUDA 9.0 from this URL: https://developer.nvidia.com/cuda-toolkit
·
在官網下載的最新版是 cuda 9.2.88 (實測不行,9.2的版本的那些個檔案是‘cublas64_92.dll’),請務必在歷史包裡尋找9.0的版本下載安裝。(個人感覺這樣一一對應的安裝相應版本是最簡單的方法了,也不容易出現未知的錯誤。其他的有一些能夠方便的升級CUDA的方法,大家感興趣可以自行去查詢)
·
由下圖可知,我們需要下載的配套版本是cuDNN v7.1.4
檔案的複製與之前的情況類似。