最近因爲論文須要,急需搭建Tensorflow環境,16年末當時Tensorflow版本號尚未過1,我曾按照手冊搭建過CPU版本。目前,1.7算是比較新的版本了(也能夠從源碼編譯1.8版本的Tensorflow)。
安裝步驟:
不能急於求成,安裝任何東西前都應該先閱讀用戶手冊與FAQ,弄清軟件依賴與安裝步驟。對於Tensorflow來講,官網有時上不去,建議關注Tensorflow的GitHub(https://github.com/tensorflow/tensorflow),GitHub上只是指明瞭Python版本,對於CUDA和cuDNN並無過多的說明,可是在releases頁面,尤爲是Tensorflow1.7部分作了以下說明:html
若是你們不肯意深究下去,個人建議是:python
平臺與驅動問題解決後,下面就是下載Tensorflow和對應的Python開發環境了,有一點,谷歌作的不錯——Tensorflow直接是一個whl格式的Python包。不少教程是讓人下載Anaconda集成開發環境,我給出的建議是:若是你只是想安裝一個Python版本,而且沒什麼很是特別的需求話,能夠不用安裝Anaconda,若是你在linux下進行開發,我卻是比較推薦Anaconda,畢竟能夠省去很多事!這裏要說一下,tensorflow的GitHub上給出的windows+GPU 1.7版本只有Python3.5與3.6可選,若是你非要用Python2,那就只能選linux了~而在另一個whl包彙集地:https://www.lfd.uci.edu/~gohlke/pythonlibs/,做者說的更加簡明扼要(注意,頁面給出的是CPU版本的):linux
TensorFlow, computation using data flow graphs for scalable machine learning.The CUDA builds require CUDA 8 and CUDNN 6.git
當Python安裝好而且下載好Tensorflow的whl包後,先不要急着安裝,因爲Python在安裝包時會自動解決依賴問題,於是,在安裝Tensorflow過程當中老是會聯網下載一些依賴包,爲了讓下載更加快一些,首先須要更換pip源,國內pip源我比較推薦清華的,直接同步的官方源,極少出問題。換源的方法很簡單:windows下,直接在user目錄中建立一個pip目錄,如:C:\Users\用戶名\pip,新建文件pip.ini,內容以下:github
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
至此,咱們轉到Tensorflow對應的whl文件目錄下,直接一句pip install xxxx.whl剩下的就讓計算機處理吧~~~~~~~
由於換了源,速度不會太差,幾分鐘就裝好了~~~~
如今不要過高興,目前,很多人安裝後不能用Tensorflow,有各類問題,如今先放出一段代碼,用來測試,代碼是網上找到的。windows
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello)) #輸出Hello, TensorFlow! a = tf.constant(10) b = tf.constant(32) print(sess.run(a + b)) #輸出42
下面這段代碼是測試GPU版本的Tensorflow的。框架
import numpy import tensorflow as tf a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') c = tf.matmul(a, b) sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) print(sess.run(c))
輸出結果會包含GPU信息~工具
FAQ
Q:顯卡驅動,CUDA tool,cuDNN三者有何關係?安裝有無前後順序?
A:關於顯卡,英偉達不少時候說的不明不白。實際上,你下載某個驅動,驅動自身大多數時候是自帶CUDA的,是的,沒錯,可是驅動自帶的CUDA卻像是少了不少東西,也找不到CUDA專門的文件夾,比較靠譜的一種說法是:正確安裝顯卡驅動後會自帶一個精簡的CUDA調用接口,以供諸如CAD等一系列軟件調用。就我使用過程來講,Caffe框架能夠直接用這個精簡接口,而不須要單獨安裝CUDA tool。可是,若是你須要開發獨立的CUDA程序,或者必須找到CUDA工具文件目錄,那CUDA tool你是必須安裝的,並且,英偉達有一個坑爹的設定:CUDA tool自帶一個匹配驅動,這就出問題了,通常咱們拿到電腦後,都是先安裝驅動的,這樣一來,二者極可能衝突,事實上,也確實出現過這類問題,比較有名的就是GTX10顯卡安裝CUDA出錯問題,目前英偉達應該已經解決了。個人建議是,若是你必須使用CUDA tool,保險起見,卸載原有驅動,直接安裝CUDA tool,這樣一來問題就會少不少。另外,cuDNN不會直接安裝,須要單獨下載,並且cuDNN其實就是.h頭文件,.lib庫文件以及一個.dll文件,只要把這三個文件放到CUDA對應的目錄下就能夠了,環境變量須要相關設置。
Q:安裝完測試時報錯:No module named "_pywrap_tensorflow" DLL load failed.
A:這個問題有不少種說法,好比什麼CUDA與cuDNN版本不匹配,缺乏微軟MSVCP140.DLL,cuDNN安裝後是否正確設置了環境變量······
目前來看,前兩種可能性不大,由於cuDNN在下載時已經明確了CUDA版本,微軟的那個東西,上述安裝過程根本沒裝,最後一個也很容易處理···不細說了,總之按照上述安裝方法,沒有任何報錯問題~
Q:請詳細說一下cuDNN安裝過程
A:看英文:測試
Copy CuDNN files to Nvidia CUDA toolkit folder (usually is located on C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0)
copy cudnn\bin\cudnn64_5.dll to C:\Program Files\NVIDIA GPU ComputingToolkit\CUDA\v8.0\bin
copy cudnn\include\cudnn.h to C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
copy cudnn\lib\x64\cudnn.lib to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
CUDA在安裝過程當中已經自動加入環境變量了,因此,cuDNN不用額外設置,直接複製文件就能夠了。
Q:如何得到Tensorflow的歷史版本?
A:能夠從pypi的官方倉庫查詢:https://pypi.org/ 查詢tensorflow-gpu,或者tensorflowui