1. 程式人生 > >win64下安裝tensorflow+cuda+cudnn

win64下安裝tensorflow+cuda+cudnn

python小白裝tensorflow的心酸眼淚史

win64+pycharm+python3.6.6+cuda9.0+tensorflow1.10.0

一般來說,下載安裝的順序為:


幾個我借鑑的教程

  1. 【TensorFlow】Windows10 64 位下安裝 TensorFlow - 官方原生支援:https://blog.csdn.net/u010099080/article/details/53418159

  2. windows下用pycharm安裝tensorflow簡易教程:https://blog.csdn.net/heros_never_die/article/details/79760616

  3. 解決Tensorflow 使用時cpu編譯不支援警告:https://blog.csdn.net/Fourierrr_/article/details/79749899

下載時用到的官方網站

  1. 最重要的:一定一定要安裝匹配的版本,在下網址中可以找到最新的互相匹配的版本
    https://github.com/fo40225/tensorflow-windows-wheel
    需要注意的是,目前(2018.9.19)tensorflow尚不支援python3.7,因此需要rensorflow的小夥伴們可能需要解除安裝重灌py 。

    下圖為該網站截圖,可看出對應的版本筆者根據對應版本tensorflow1.10.0+cuda9.2進行安裝後,編譯時仍提示版本不正確,於是又重新裝回9.0。
    就此次坎坷的安裝經歷來看,安裝cuda9.0是最為保險的方法了。

圖為該網站截圖,可看出對應的版本
安裝9.2的錯誤警告

下載tensorflow的cmd指令為:

pip install tensorflow-1.6.0-cp36-cp36m-win_amd64.whl

根據版本不同自行設定

2. 查詢顯示卡資訊、安裝最新驅動https://www.nvidia.cn/Download/index.aspx?lang=cn

此頁面可自動檢測當前gpu型號,如果頁面顯示未安裝java的話,換一個瀏覽器或手動檢測此頁面可自動檢測當前gpu型號,如果頁面顯示未安裝java的話,可以換一個瀏覽器或者進行手動檢測

3. cuda下載(注意版本):**https://developer.nvidia.com/cuda-toolkit-archive

4. cudnn下載(需註冊和填寫問卷):**https://developer.nvidia.com/rdp/cudnn-download

一些注意事項

  1. 除版本問題外,cuda下載安裝時,可以先把從官網上下載的exe檔案用winrar解壓,再用setup進行安裝。這樣可以節省時間(也可以直接雙擊安裝,但系統會自動解壓,如果安裝出現問題重新安裝,系統就會二次解壓,浪費時間)
  2. cuda安裝時可以選擇自定義安裝,選擇安裝內容時可以點+號來檢視當前電腦版本和cuda提供版本的高低,當電腦版本高於提供版本時,完全沒有必要對該項進行安裝 (筆者為了方便,沒有改預設路徑)
  3. cuda不需要手動新增環境變數;cudnn需要,路徑為解壓後文件的bin目錄
  4. 將cudnn的資料夾複製貼上至cuda的安裝根目錄下,筆者的為C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 5.2. 5.
  5. 若Tensorflow使用時,出現cpu編譯不支援警告:Your CPU supports
    instructions that this TensorFlow binary was not compiled to use: AVX AVX2,解決方式為——
// 只需複製貼上第二句即可
`import os  os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # 這是預設的顯示等級,顯示所有資訊  
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只顯示 warning 和 Error   
os.environ["TF_CPP_MIN_LOG_LEVEL"]='3' # 只顯示 Error`

沒錯,就是忽略它…筆者也嘗試過重新安裝最新版本cuda,發現最新版本不支援,再次裝回原版本後警告便消失了…這可能就是玄學吧

附上測試程式碼

非原創,原部落格地址在這裡~ https://blog.csdn.net/william_hehe/article/details/79615894

// An highlighted block
import tensorflow as tf

with tf.device('/cpu:0'):
    a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')

    b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')

with tf.device('/gpu:1'):
    c = a + b

# 注意:allow_soft_placement=True表明:計算裝置可自行選擇,如果沒有這個引數,會報錯。

# 因為不是所有的操作都可以被放在GPU上,如果強行將無法放在GPU上的操作指定到GPU上,將會報錯。

sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True))

# sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

sess.run(tf.global_variables_initializer())

print(sess.run(c))

結果為:[ 2. 4. 6.]

結語

嚶嚶嚶,我會好好學習的