1. 程式人生 > >windows 上面的tensorflow-GPU、cuda、cudnn 安裝

windows 上面的tensorflow-GPU、cuda、cudnn 安裝

atm search 容易 oca api RM run correct 既然

安裝說明

平臺:目前可在Ubuntu、Mac OS、Windows上安裝
版本:提供gpu版本、cpu版本
安裝方式:pip方式、Anaconda方式
Tips:

  1. 在Windows上目前支持python3.5.x
  2. gpu版本需要cuda8,cudnn5.1

安裝進度

2017/3/4進度:
Anaconda 4.3(對應python3.6)正在安裝,又刪除了,一無所有了
2017/3/5進度:
Anaconda 4.3(對應python3.6)get
Anaconda中python3.5.2get
tensorflow1.0.0get


行文思路

在看別人教程時候總遇到些沒見過的名詞,讓人望而生畏。
所以索性從名詞解釋開始。
然後講述TensorFlow的安裝和簡單示例。
作為自己的筆記,
也希望像我一樣的小白看到這篇教程能覺得做起來很順暢!


CUDA

CUDA(Compute Unified Device Architecture),是顯卡廠商NVIDIA推出的運算平臺。 CUDA?是一種由NVIDIA推出的通用並行計算架構,該架構使GPU能夠解決復雜的計算問題。 它包含了CUDA指令集架構(ISA)以及GPU內部的並行計算引擎。 開發人員現在可以使用C語言來為CUDA?架構編寫程序,C語言是應用最廣泛的一種高級編程語言。所編寫出的程序於是就可以在支持CUDA?的處理器上以超高性能運行。CUDA3.0已經開始支持C++和FORTRAN。
計算行業正在從只使用CPU的“中央處理”向CPU與GPU並用的“協同處理”發展。為打造這一全新的計算典範,NVIDIA?(英偉達?)發明了CUDA(Compute Unified Device Architecture,統一計算設備架構)這一編程模型,是想在應用程序中充分利用CPU和GPU各自的優點。現在,該架構已應用於GeForce?(精視?)、ION?(翼揚?)、Quadro以及Tesla GPU(圖形處理器)上。
來自百度百科。

(所以我的A卡是用不成它的)

Anaconda

Anaconda是由Python提供支持的領先的開放數據科學平臺。 Anaconda的開源版本是Python和R的高性能分發版本,包括超過100個用於數據科學的最流行的Python,R和Scala軟件包。
來自Anaconda官方下載頁面
具體使用見Anaconda官方教程,簡單易懂!


Anaconda初步學習

0.下載Anaconda安裝包:Anaconda官方下載地址
我下載的是Anaconda4.3.0For Windows 64bit(內置python3.6)
下載好了就安裝,一直下一步。
1.檢查Anaconda是否成功安裝:conda --version


技術分享圖片
(嘻嘻,第一步成功了,開心點)
2.檢測目前安裝了哪些環境:conda info --envs
技術分享圖片
(只有一個呀!不怕,繼續來!)
3.檢查目前有哪些版本的python可以安裝:conda search --full-name python
技術分享圖片
(好多呀,要哪個呢?嘻嘻當然是python3.5啦)
4.安裝不同版本的python:conda create --name tensorflow python=3.5
(猜想輸入python=3.5版本後,系統會自動選擇一個3.5.x的版本吧)
技術分享圖片
(python3.5.3要不要?實驗室服務器上是3.5.2,統一好啦!)
技術分享圖片
(好啦,GO!)
技術分享圖片
(嘻嘻!安好啦!又離成功近了一步!)
5.按照提示,激活之:activate tensorflow
技術分享圖片
(嘻嘻它有了一頂小帽子~代表我的當前環境哦)
6.確保名叫tensorflow的環境已經被成功添加:conda info --envs
技術分享圖片
(Bravo!)
7.檢查新環境中的python版本:python --version
技術分享圖片
(^^開心開心~)
8.退出當前環境:deactivate
技術分享圖片
(小帽子掉了)
9.切換環境:activate tensorflow
技術分享圖片
想切換到哪個環境就 activate哪個~
這篇文章既然是安裝tensorflow的,當然要avtivate tensorflow!
小妖精!我來了!

PS:想了解更多請看Anaconda官方教程,簡單易懂好上手!別亂搜網上的教程,沒有官方教程看著清爽!


TensorFlow安裝
本文是將tensorflow在原生windows系統上安裝,
采用anocanda的安裝方式,
安裝的是cpu版本(嗯,作為AMD的顯卡,掩面哭)

Anaconda 4.3.0.1(帶有python3.6)
在Anaconda裏面配了python3.5.2
下面是今天的主角!(劈裏啪啦)

1.按照官網的指示:
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_x86_64.whl

技術分享圖片
(好吧,先是打錯,接下來又這樣!我不知道該怎麽辦了(ㄒoㄒ)/~~)
2.另一種嘗試:pip install tensorflow

技術分享圖片
(劃重點了,原來是這樣子!我是AMD的卡,對應的不一樣!)
3.確認tensorflow安裝成功:
錯誤嘗試:直接在cmd裏面鍵入python,然後鍵入import tensorflow as tf

技術分享圖片
(小夥子默認的是python3.6啊啊啊啊啊,要從anaconda進入剛剛裝的那個python3.5裏面哦!~)

正確嘗試:進入Anaconda Prompt-python裏面,進入安裝的名叫tensorflow的環境(我們裝的python3.5.2記得嗎?~),鍵入python,然後再鍵入import tensorflow as tf
在這裏可以找到Anaconda Prompt-python:
技術分享圖片
技術分享圖片

打開Anaconda Navigator(開始菜單->Anaconda 3->Anaconda Navigator),搞一個spyder玩,點擊spyder下面的“install”,安裝好就變成“Launch”了,點擊就可以進去了。
技術分享圖片

在spyder裏對tensorflow說Hello!
技術分享圖片

輸出:
技術分享圖片
(嘿嘿嘿哈哈哈我感覺我好像成功了!!!你呢?~~)

參考tensorflow官方文檔,請上英文官網,中文社區似乎沒有更新windows上的安裝


TensorFlow例程上手

裝了個新東西,我們先把它用起來吧!
概念什麽的跑完第一個小程序再看!
找點成就感才好繼續下去!
示例來源:MINIST For ML Beginners

MINST數據集:

  1. 55000訓練集,10000測試集,5000驗證集
  2. 每張圖片都是28pixels*28pixels

代碼:

#獲得數據集
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

import tensorflow as tf

#輸入圖像數據占位符
x = tf.placeholder(tf.float32, [None, 784])

#權值和偏差
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

#使用softmax模型
y = tf.nn.softmax(tf.matmul(x, W) + b)

#代價函數占位符
y_ = tf.placeholder(tf.float32, [None, 10])

#交叉熵評估代價
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))

#使用梯度下降算法優化:學習速率為0.5
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

#Session
sess = tf.InteractiveSession()

#初始化變量
tf.global_variables_initializer().run()

#訓練模型,訓練1000次
for _ in range(1000):
  batch_xs, batch_ys = mnist.train.next_batch(100)
  sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

#計算正確率
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

運行結果:輸出顯示得到模型的準確率


結語

昨天花費了大半天部署環境,不但一無所獲且搞得焦頭爛額。今天再戰,索性邊做邊寫,好像和旁邊的人在聊天一樣。嗯,心情愉悅的時候容易做出東西。時間很寶貴,但還是希望你的學習曲線不要太陡峭,希望你能愉快地走進新領域。

windows 上面的tensorflow-GPU、cuda、cudnn 安裝