1. 程式人生 > >Win10 TensorFlow(gpu)安裝詳解

Win10 TensorFlow(gpu)安裝詳解

它的 處理過程 推薦 過程 來源 sources ebo 官網 constant

Win10 TensorFlow(gpu)安裝詳解

寫在前面:TensorFlow是谷歌基於DistBelief進行研發的第二代人工智能學習系統,其命名來源於本身的運行原理。Tensor(張量)意味著N維數組,Flow(流)意味著基於數據流圖的計算,TensorFlow為張量從圖象的一端流動到另一端計算過程。TensorFlow是將復雜的數據結構傳輸至人工智能神經網中進行分析和處理過程的系統。從去年十一月開源至今一年多一點的時間裏,該項目已經收獲了40000+的star和18000+的fork,足見它的熱度。TensorFlow的社區和文檔都非常完善,因而受到大家的青睞。

技術分享圖片

之前TensorFlow只支持Ubuntu/Linux和Mac OS X,安裝也比較方便。前兩天上社區發現已經有Windows版本了,果斷裝個試試,本文主要記錄Win10下安裝TensoFlow踩過的坑。

TensorFlow 官方安裝教程
TensorFlow 中文社區

1.安裝環境(多版本Python管理)

技術分享圖片

TensorFlow目前在windows下只支持64-bit Python 3.5,由於之前一直在用python 2.7(Anaconda2)+jupyter notebook,不想直接換成Python 3.5,所以準備安裝兩個版本的Anaconda。這裏主要介紹下如何管理使用不同版本的Python,如果本來就用Python 3.5的這章節直接跳過好了。

Anaconda下載安裝:Window下安裝非常簡單,直接運行安裝包下一步下一步就行,安裝過程會有選擇打鉤的地方,第一個是添加環境變量,第二個是把Anaconda下的Python設置為默認版本,這裏建議都勾選。

技術分享圖片

了解Anaconda的應該都知道可以用conda環境管理不同版本的python,比如我現在安裝的是Anaconda2,默認python版本是2.7,但是我想用下Python 3,這個時候可以用conda創建一個環境,在這個環境下可以安裝運行你想要的版本,等用完了退出這個環境即可。系統默認的Python版本還是2.7。

下面介紹具體怎麽處理:

(1).創建一個名為python35的環境,指定Python版本是3.5
打開cmd:conda create --name python35 python=3.5

(2).安裝完成後,使用activate激活python35
輸入activate python35

可以看到 命令行行前面有個(python35),這個就是當前運行環境
接著運行python可以看到python版本顯示為3.5.2

技術分享圖片

(3).如果想返回默認的python 2.7環境,先退出python然後運行deactivate python35

技術分享圖片

運行python,如圖所示,python版本為2.7.12,命令行前面的(python35)也不見了,說明已經退出python35環境。

是不是很方便?下面去安裝路徑下看下,可以看到在Anaconda2安裝路徑的envs下有python35這個文件夾,每當我們激活這個環境的時候,系統運行環境就在該文件夾下面了。(其它兩個是我後面新建的)

技術分享圖片

到這裏其實已經準備好安裝環境了,但是我之前用習慣了jupyter notebook,如果我現在運行Anaconda自帶的notebook還是只有python 2.7.12版本,如果跟我一樣想用jupyter notebook繼續往下看。

既然可以在新建的環境下安裝Python 3.5,那我在這個環境下在安裝一個Anaconda3怎麽樣,這樣同時安裝了python 3.5的jupyter notebook以及Spyder,嘗試了一下,果然可以! (看了評論發現這個方法不可以了,現在不經常上csdn了,路過的小夥伴路過有解決方案也闊以共享出來…
我去年這麽裝的時候是沒有問題的。剛剛試了下,確實不可以了。 然後我嘗試了一下其他方法:
1.conda create –name test python=3.6
2.activate test
3.pip install jupyter/spyder
4.jupyter notebook
這樣也是可以的。)

(1).conda新建一個Anaconda3的環境
conda create --name Anaconda3
成功後會在Anaconda2下的envs文件夾下新建一個Anaconda3環境
(2).接著從Anaconda官網下載Anaconda3的安裝包並安裝
在安裝的時候註意將安裝路徑選為E:\Anaconda2\envs\Anaconda3(即剛才新建的conda環境),另外註意在打鉤的界面,兩個都不要勾選,接著正常安裝結束就行。

技術分享圖片

(3).安裝完成後,激活Anaconda3環境,運行pythonjupyter notebook,大功告成。

技術分享圖片

技術分享圖片

2. TensorFlow安裝

完成上面python3.5安裝後就很簡單了,直接pip安裝就行。

先激活Anaconda3環境:activate Anaconda3
註:如果機子顯卡較低不支持GPU加速就安裝CPU版本,本文安裝的是GPU版本

輸入:pip install tensorflow-gpu 安裝,如果提示pip版本問題,按提示更新到最新版本即可。

技術分享圖片

安裝完成。
這個時候雖然已經安裝好了TensorFlow,但是因為需要GPU加速,我們還需要安裝cuda和cuDnn(專門為deep learning準備的加速庫)。

3. cuda安裝

(1).cuda v8.0安裝包下載 ,還有安裝指南之類的,稍微看下就行。

技術分享圖片

根據自己的環境選擇對應的版本,exe分為網絡版和本地版,網絡版安裝包比較小,執行安裝的時候再去下載需要的包;本地版安裝包是直接下載完整安裝包。這裏建議下載本地版(網絡版我試過,安裝一晚上失敗了…),另外建議用win10自帶的edge瀏覽器下載,速度比谷歌啥的快多了。

下載下來後就正常安裝就可以了。

(2).cuDnn庫下載

下載這個安裝包需要註冊並且填一堆問卷,下下來以後把相關包不用安裝,直接拷到cuda路徑對應的文件夾下面就行(後面說)。

(3).cuda測試
在cuda安裝好後會自動下載一些example,自己運行測試一下,問題不大。

(4).關鍵坑(運行TensorFlow)
當我安裝完成準備開一波車的時候,出來各種錯,作為年輕的老司機我講講經驗。TensorFlow 是一個編程系統, 使用圖來表示計算任務,圖必須在Session(會話)裏被啟動. Session將圖的op(操作)分發到諸如CPU或GPU之類的設備上運行。所以,這個時候你運行python然後import tensorflow as tf是不會報錯的,但是當你要執行tf.Session()的時候可能就有問題了。這個時候將會調用cuda,我在這裏遇到的問題是各種lib,dll加載不了。經過一番檢查,定位到問題,cuda安裝完成後默認的環境變量配置不對,CUDA_PATH是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0,但是這樣不能直接訪問到bin和lib\x64下的程序包,在path中加上這兩個路徑即可。

再發一波車,結果還有問題…還有一個庫加載不了,就是上面的cuDnn庫了,很簡單,解壓剛才下下來的安裝包,將這三個文件夾下的文件拷到CUDA對應的文件夾下面即可。
技術分享圖片

技術分享圖片

這樣就大功告成了。

4.TensorFlow測試

(1).代碼測試:

import tensorflow as tf

技術分享圖片

hello = tf.constant(‘Hello, TensorFlow!‘)
sess = tf.Session()
  • 1
  • 2
  • 3

(2).官方教程代碼測試:

The TensorFlow implement
ation translates the graph definition into executable operations distributed across available compute resources, such as the CPU or one of your computer’s GPU cards. In general you do not have to specify CPUs or GPUs explicitly. TensorFlow uses your first GPU, if you have one, for as many operations as possible.

#Creates a graph.
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)
#Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
#Runs the op.
print sess.run(c)

輸出:

Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Tesla K40c, pci bus
id: 0000:05:00.0
b: /job:localhost/replica:0/task:0/gpu:0
a: /job:localhost/replica:0/task:0/gpu:0
MatMul: /job:localhost/replica:0/task:0/gpu:0
[[ 22.  28.]
 [ 49.  64.]]

技術分享圖片
技術分享圖片

(2).example 測試

下載github上的tensorflow源碼,裏面有很多示例代碼

技術分享圖片

run example:

python mnist_with_summaries.py
..............................

結果剛發車就熄火了…couldn‘t open CUDA library cupti64_80.dll

查了一下,這個dll在NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64,因為這個也沒添加到系統變量,簡單的處理方式,把這裏面的文件也拷到環境變量的bin文件夾下。

再次啟動,終於愉快的run起來了。

技術分享圖片

最後想看看gpu情況,搜到了這個:NVIDIA System Management Interface
其實在安裝路徑下已經有了C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi
具體怎麽操作,還在探索中…

5.完

老規矩,推薦一些好資料。

tensorflow官方教程,還有中文版社區,文章開頭已放鏈接。

不錯的知乎專欄: https://zhuanlan.zhihu.com/hsmyy

Hiton的課程:https://www.coursera.org/learn/neural-networks/home

其它比較火的的deep learning 框架:keras、mxnet…

最後,安裝的過程還關註到了Docker,真的是個黑科技!等玩好了在PO教程上來。

Win10 TensorFlow(gpu)安裝詳解