1. 程式人生 > >【安裝】Windows下 TensorFlow 的安裝(包含:CUP版、GPU版、CUDA、cuDNN)——最後更新日期 2018-05-30

【安裝】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


檔案的複製與之前的情況類似。