天天看點

win10+cuda10.1+cudnn7.5+anaconda3 安裝 tensorflow-gpu

  •  在nvdia官網下載下傳 cuda10.1 win10 x64, 安裝。
  • 在nvdia官網下載下傳 cudnn-10.1-windows10-x64-v7.5.0.56.zip, 解壓,将裡面的檔案夾複制到cuda的安裝目錄 比如:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
  • 下載下傳anaconda3 (2019年6月19日 Anaconda3-2019.03-Windows-x86_64.exe,注意安裝的是python3.7),一路安裝。(如果想直接在windows指令行中使用python、pip,請安裝後手動把anaconda的安裝目錄添加到環境變量path.)
  • 打開 anaconda prompt,使用pip 安裝 ,pip install tensorflow-gpu
  • 使用例子, 
    import tensorflow as tf
               

    此pip指令按照的是最新版本的tensorflow1.4(除了2的beta版本之外)。

    好了,總算問題來了。。。

    ImportError: DLL load failed: 找不到指定的子產品。
    
    
    Failed to load the native TensorFlow runtime.
    
    See https://www.tensorflow.org/install/errors
    
    for some common reasons and solutions.  Include the entire stack trace
    above this error message when asking for help.
               
    網上GitHub一查,大把人出現這個問題, Win10: ImportError: DLL load failed: 浏覽了一遍後發現問題,“ confirmed it needs a dependency on 

    CUBLAXX_100.DLL

    .

    Then I installed CUDA10.0 and it works.” cuda版本不對。。。難道要重裝cuda?将cuda降級到10.0?雖然現在cuda裝起來很容易,也不需要額外配置,可是還是麻煩啊,之前都用得好好的。。有點不甘心啊。。

  • 一番折騰之後發現官方的whl都不支援10.1,但是總是有好人的。下面的github提供了重編譯的版本,支援10.1的cuda。下載下傳位址如下https://github.com/fo40225/tensorflow-windows-wheel
  •  tensorflow-windows-wheel/1.14.0/py37/GPU/cuda101cudnn76avx2/tensorflow_gpu-1.14.0-cp37-cp37m-win_amd64.7z.001 和 002 (或者其他版本的tenfowflow),解壓,,之後在anaconda prompt 下将目錄cd到下載下傳目錄,然後pip install xxx.whl,顯示安裝成功。
  • 如果你其他的都沒有裝(anaconda cuda),請參考博文 https://blog.csdn.net/huanyingzhizai/article/details/89298964
  • 測試一下:
  • import tensorflow as tf
    import numpy as np
    
    
    b = tf.test.is_gpu_available(cuda_only = False, min_cuda_compute_capability = None)
    print(b)
    
    # 使用 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.global_variables_initializer()
    
    # 啟動圖 (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))
               
    成功輸出結果!!大功告成。
  •  如果想使用更高版本的tensorflow,可以參考網友給出的其他解決方案,将cuda降級到10.0。
- Windows 10 Home 64bit
- CUDA Toolkit 10.0 (Sept 2018)
- Download cuDNN v7.6.0 (May 20, 2019), for CUDA 10.0
- Python 3.7.3 Windows AMD64
- Tensorflow-gpu 1.13 1.14 2
           

---------------END-------------------------

2019年7月23日