基於Anacoda搭建虛擬環境cudnn6.0+cuda8.0+python3.6+tensorflow-gpu1.4.0

!一定要查准cudnn,cuda,tensorflow-gpu對應的版本號再進行安裝,且本文一切安裝均在虛擬環境中完成。

下文以筆者自己電腦為例,展開安裝教程闡述(省略anaconda安裝教程):

1.查詢電腦CUDA版本

 2. 確認對應的cudnn,cuda,tensorflow-gpu版本號(鏈接

3.如果先前安裝過tensorflow-gpu,先卸載(沒有安裝過,此條可忽略)

activate tensorflow # 進入已有的tensorflow虛擬環境

pip3 unistall tensorflow-gpu
pip3 unistall tensorflow-tensorboard
conda env list  #檢測目前安裝了哪些環境

4.創建虛擬環境並進入(在anaconda prompt終端執行)

conda create -n tensorflow python=3.7 #(tensorflow:自己取的tensorflow環境名,Python:對應的python版本)
conda ativate tensorflow

 5.安裝cuda,cudnn

  5.1 因為直接pip install cuda = 8.0 很容易環境出錯,盡量還是避免;本文找到了鏡像(鏈接),直接下載安裝包;

  

  5.2 進入終端,cd 路徑到安裝包路徑,如下圖

  

     

   5.3 安裝cudatoolkit和cudnn-cuda安裝包

conda install cudnn-7.1.4-cuda8.0_0.tar.bz2

  

   5.4 但是我安裝的cudnn是7.0+版本,而我需要的是6.0版本,所以我另外在anaconda navigator圖形化介面進行版本更新。P:如果無法打開navigator圖形化介面可參考該文章(鏈接

  

  一般出現這個錯誤提示,代表版本不對應。

 至此,cuda和cudnn對應的版本已安裝完成。

6. 安裝tensorflow-gpu (最好用pip,conda命令可能引起不必要的麻煩)

pip3 install tensorflow-gpu==1.4.0 

7. 驗證是否安裝成功

進入Python環境;輸入 

mport tensorflow as tf #進入tensorflow
tf.__version__  #tensorflow-gpu版本

  

  註:當出現 藍框warning時,是提示tensorflow2.0 以下 最好:用numpy 1.16.+版本;輸入以下命令即可。

pip install -U numpy==1.16.4

其他問題(tensorflow-gpu安裝過程中出現的tf.test.is_gpu_avaiable()返回false的一部分解決方法

8. 虛擬環境鍵入pycharm編輯器;可借鑒該文章(基於conda pycharm 的tensorflow安裝配置

9. 測試

 

import tensorflow as tf
import numpy as np
 
# 使用 NumPy 生成假數據(phony data), 總共 100 個點.
x_data = np.float32(np.random.rand(2, 100)) # 隨機輸入
y_data = np.dot([0.100, 0.200], x_data) + 0.300
 
# 構造一個線性模型
#
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
 
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
 
# 初始化變數
init = tf.initialize_all_variables()
 
# 啟動圖 (graph)
sess = tf.Session()
sess.run(init)
 
# 擬合平面
for step in range(0, 201):
    sess.run(train)
    if step % 20 == 0:
        print (step, sess.run(W), sess.run(b))
 
# 得到最佳擬合結果 W: [[0.100  0.200]], b: [0.300]