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日

你可能感兴趣的:(机器学习,PYTHON,DeepLearning)