(轉)Win10 TensorFlow(gpu)安裝詳解

Win10 TensorFlow(gpu)安裝詳解

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

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

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

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設置爲默認版本,這裏建議都勾選。windows

 
數組

瞭解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.5session

(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()

(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

I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] 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 框架:kerasmxnet

相關文章
相關標籤/搜索