TensorFlow在Windows上的CPU版本和GPU版本的安裝指南(親測有效)


安裝說明

平台:Window、Ubuntu、Mac等操作系統

版本:支持GPU版本和CPU版本

安裝方式:pip方式、Anaconda方式

attention:

在Windows上目前支持python3.5.x

GPU版本可支持CUDA9.0、Cudnn7.0

安裝過程

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(圖形處理器)上。
來自百度百科。

Anaconda簡介

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

Anaconda安裝過程

  1. 下載Anaconda安裝包:官方網址
    1. 我下載的是:Anaconda3-5.0.1-Windows-x86_64(內含python3.6) 
  2. 檢查Anaconda是否安裝成功:conda --version

    (成功第一步,繼續向前進)
  3. 檢測目前安裝了哪些環境:conda info --envs

    (正常情況下只有一個base,新手還要慢慢來吧)

  4. 檢查目前有哪些版本的python可以安裝:conda search --full-name python

  5. 安裝不同版本的python:conda create --name tensorflow python=3.5 (為了保持版本一致,還是盡量選擇3.5的吧)
  6. 根據提示,激活TensorFlow:activate tensorflow

     

     

    (可以看到前面有個tensorflow的標志)
  7. 確保tensorflow環境已經被成功添加:conda info --envs

     

  8. 檢查當前使用環境的python版本:python --version

     

  9. 退出當前環境:deactivate

     

    (tensorflow的標志沒有啦,如果想進去再用activate tensorflow)

 

TensorFlow-CPU安裝

  1. 由於已經具有好了python3.5環境,現在使用Anaconda安裝CPU版本的tensorflow:
    pip install tensorflow

    或者不行的話可以安裝其他的鏡像文件,比如:pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_x86_64.whl

  2. 確定tensorflow已經安裝成功
    1. 錯誤嘗試:直接在cmd中輸入python,再輸入
      import tensorflow as tf

      顯示錯誤,因為默認的python版本為3.6.正確的做法是進入anaconda里面的3.5的python版本

    2. 正確做法:首先通過activate tensorflow進入tensorflow環境,再輸入python,並導入框架:
      import tensorflow as tf

      至此,TensorFlow-CPU版本就安裝完成了。

  3. 進入Anaconda Prompt-python里面,進入安裝的名叫tensorflow的環境(我們裝的python3.5.2記得嗎?~),鍵入python,然后再鍵入import tensorflow as tf
    在這里可以找到Anaconda Prompt-python
  4. 打開Anaconda Navigator(開始菜單->Anaconda 3->Anaconda Navigator),搞一個spyder玩,點擊spyder下面的“install”,安裝好就變成“Launch”了,點擊就可以進去了。在spyder里對tensorflow說Hello! (或者可以安裝pycharm進行編輯)

TensorFlow-GPU安裝

  1. 安裝CUDA9.0
    1.   檢查自己的電腦顯卡支持CUDA后進行安裝,我在安裝之前先是看了幾個大牛的博客。預先知道了目前tensorflow目前支持CUDA8.0和對應的CUDNN5.1版本(所以安裝了這兩個之后安裝tensorflow-gpu之后測試說提示我:

      could not find 'cudart64_90.dll' 這個提示意思是需要安裝CUDA9.0)

      可能是tensorflow升級了目前支持CUDA9.0和CUDNN7了,所以我后來又安裝了CUDA9.0和CUDNN7

      CUDA官網(https://developer.nvidia.com/cuda-downloads)最新是CUDA9.1了

      所以我選擇下載歷史版本CUDA9.0(https://developer.nvidia.com/cuda-toolkit-archive)

      注:最好是下載local版本,不要下載network版本,以免安裝又出什么岔子

      下載安裝好了之后不要忘記系統環境配置

      CUDA_PATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0  

      CUDA_BIN_PATH:%CUDA_PATH%\bin   

      CUDA_LIB_PATH:%CUDA_PATH%\lib\Win32  

      CUDA_SDK_BIN:%CUDA_SDK_PATH%\bin\Win64   

      CUDA_SDK_LIB:%CUDA_SDK_PATH%\common\lib\x64   

      CUDA_SDK_PATH:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0 

  2. 下載Cudnn7.0
    1.   下載CuDNN,進了下載網站(https://developer.nvidia.com/rdp/form/cudnn-download-survey),你會發現他要讓你注冊了才能下載,過程比較煩。所以我直接在CSDN下載頁面花了兩積分下載的CuDNN7,親測能用。(http://download.csdn.net/download/qq_34364066/10123615)​,下載后得到的是一個壓縮包,將解壓的文件夾復制到安裝的CUDA【C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0】的目錄下即可。
  3. 安裝GPU版本TensorFlow
    1.   

      因為之前一直用,所以就用之前下載好的安裝包,我的安裝包是Anaconda3.4.2版本的Anaconda3-4.2.0-Windows-x86_64.exe,支持python3.5。

      安裝之后,在新建tensorflow環境。

      conda create -n tensorflow-gpu python=3.5

      新建好環境之后激活activate tensorflow-gpu,在環境里利用pip安裝

      pip install --upgrade --ignore-installed tensorflow-gpu

      測試安裝成功的小例子:

      python //進入python命令模式

      import tensorflow as tf
      hello=tf.constant("Hello,tensorflow!")
      s=tf.Session()
      print (s.run(hello))

      順利打印出b"Hello,tensorflow!"說明成功,

      exit()//退出python命令模式

  4. 配置pycharm軟件
    1.   

      安裝並破解PyCharm:

      直接在官網下載相關版本的PyCharm(http://www.jetbrains.com/pycharm/download/#section=windows),安裝的是專業版,安裝過程很簡單,重要的是安裝成功后的激活過程。

      破解教程如下,博主講解的很是詳細。

      http://blog.csdn.net/weixin_40190468/article/details/79084941

      配置PyCharm:

      在PyCarm下配置tensorflow環境,要設置好pycharm下解釋器的interpreter的路徑【File --> Setting --> Project --> Project Interpreter】,也就是anaconda中tensorflow-gpu的路徑。

      在pycharm中測試剛剛的小例子輸出成功,則安裝成功。

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

運行結果為輸出顯示得到模型的准確率

 

總結

TensorFlow的CPU版本安裝過程注意要在tensorflow的環境中運行,那里的python版本為3.5。若沒有進入tensorflow環境運行,則是在Anaconda固有的3.6版本python中運行

TensorFlow的GPU版本一定要注意CUDA和Cudnn兩者之間的版本對應關系,否則將無法運行TensorFlow,具體對應情況可在官網查看

 

感悟:cuda 8.0+cudnn 6.0+TensorFlow 1.30
cuda 9.0+cudnn 7.0+TensorFlow 1.70

參考

https://blog.csdn.net/yygydok/article/details/79783002

https://blog.csdn.net/darlingwood2013/article/details/60322258

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM