Tensorflow(GPU) 在Win10+Cuda8.0环境

作者: DerryChan | 来源:发表于2018-02-28 23:47 被阅读428次

    安装环境

    • Win10
    • Python3.6.4
      3.5以上版本都可以,目前Tensorflow只支持64位python3.5以上版本
    • numpy
      安装好Python后打开终端cmd输入 pip3 install numpy

    具体流程

    1. 下载安装Cuda8.0一定要是8.0版本!下载地址,并按照下图选择下载本地安装包。

      image
      如果安装错了记得要把之前的删除卸载干净
    2. 安装完成后配置系统环境变量Path

      TensorFlow 是一个编程系统, 使用图来表示计算任务,图必须在Session(会话)里被启动. Session将图的op(操作)分发到诸如CPU或GPU之类的设备上运行。所以,这个时候你运行python然后import tensorflow as tf是不会报错的,但是当你要执行tf.Session()的时候可能就有问题了。这个时候将会调用cuda,我在这里遇到的问题是各种lib,dll加载不了。经过一番检查,定位到问题,Cuda安装完成后默认的环境变量配置不对,不能直接访问到binlib\x64下的程序包,在path中加上这两个路径即可。

      image
      原本安装好之后并不会有以上四个环境变量,有两个需要自己加上。

      C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
      C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
      C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
      C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp

      附配置环境变量教程
      最后在cmd里输入 echo %path% 就能查看你的是否添加进环境变量了

    3. 下载Cudnn6.0,下载地址,需要注册并填问卷,下载后解压压缩包,将包内文件夹里面的内容分别拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0里面的三个文件夹中去。

      image
    4. 最后测试和检查一下,代码如下

    import ctypes  
    import imp  
    import sys  
      
      
    def main():  
        try:  
            import tensorflow as tf  
            print("TensorFlow successfully installed.")  
            if tf.test.is_built_with_cuda():  
                print("The installed version of TensorFlow includes GPU support.")  
            else:  
                print("The installed version of TensorFlow does not include GPU support.")  
            sys.exit(0)  
        except ImportError:  
            print("ERROR: Failed to import the TensorFlow module.")  
      
        candidate_explanation = False  
      
        python_version = sys.version_info.major, sys.version_info.minor  
        print("\n- Python version is %d.%d." % python_version)  
        if not (python_version == (3, 5) or python_version == (3, 6)):  
            candidate_explanation = True  
            print("- The official distribution of TensorFlow for Windows requires "  
                  "Python version 3.5 or 3.6.")  
      
        try:  
            _, pathname, _ = imp.find_module("tensorflow")  
            print("\n- TensorFlow is installed at: %s" % pathname)  
        except ImportError:  
            candidate_explanation = False  
            print(""" 
    - No module named TensorFlow is installed in this Python environment. You may 
      install it using the command `pip install tensorflow`.""")  
      
        try:  
            msvcp140 = ctypes.WinDLL("msvcp140.dll")  
        except OSError:  
            candidate_explanation = True  
            print(""" 
    - Could not load 'msvcp140.dll'. TensorFlow requires that this DLL be 
      installed in a directory that is named in your %PATH% environment 
      variable. You may install this DLL by downloading Microsoft Visual 
      C++ 2015 Redistributable Update 3 from this URL: 
      https://www.microsoft.com/en-us/download/details.aspx?id=53587""")  
      
        try:  
            cudart64_80 = ctypes.WinDLL("cudart64_80.dll")  
        except OSError:  
            candidate_explanation = True  
            print(""" 
    - Could not load 'cudart64_80.dll'. The GPU version of TensorFlow 
      requires that this DLL be installed in a directory that is named in 
      your %PATH% environment variable. Download and install CUDA 8.0 from 
      this URL: https://developer.nvidia.com/cuda-toolkit""")  
      
        try:  
            nvcuda = ctypes.WinDLL("nvcuda.dll")  
        except OSError:  
            candidate_explanation = True  
            print(""" 
    - Could not load 'nvcuda.dll'. The GPU version of TensorFlow requires that 
      this DLL be installed in a directory that is named in your %PATH% 
      environment variable. Typically it is installed in 'C:\Windows\System32'. 
      If it is not present, ensure that you have a CUDA-capable GPU with the 
      correct driver installed.""")  
      
        cudnn5_found = False  
        try:  
            cudnn5 = ctypes.WinDLL("cudnn64_5.dll")  
            cudnn5_found = True  
        except OSError:  
            candidate_explanation = True  
            print(""" 
    - Could not load 'cudnn64_5.dll'. The GPU version of TensorFlow 
      requires that this DLL be installed in a directory that is named in 
      your %PATH% environment variable. Note that installing cuDNN is a 
      separate step from installing CUDA, and it is often found in a 
      different directory from the CUDA DLLs. You may install the 
      necessary DLL by downloading cuDNN 5.1 from this URL: 
      https://developer.nvidia.com/cudnn""")  
      
        cudnn6_found = False  
        try:  
            cudnn = ctypes.WinDLL("cudnn64_6.dll")  
            cudnn6_found = True  
        except OSError:  
            candidate_explanation = True  
      
        if not cudnn5_found or not cudnn6_found:  
            print()  
            if not cudnn5_found and not cudnn6_found:  
                print("- Could not find cuDNN.")  
            elif not cudnn5_found:  
                print("- Could not find cuDNN 5.1.")  
            else:  
                print("- Could not find cuDNN 6.")  
                print(""" 
      The GPU version of TensorFlow requires that the correct cuDNN DLL be installed 
      in a directory that is named in your %PATH% environment variable. Note that 
      installing cuDNN is a separate step from installing CUDA, and it is often 
      found in a different directory from the CUDA DLLs. The correct version of 
      cuDNN depends on your version of TensorFlow: 
     
      * TensorFlow 1.2.1 or earlier requires cuDNN 5.1. ('cudnn64_5.dll') 
      * TensorFlow 1.3 or later requires cuDNN 6. ('cudnn64_6.dll') 
     
      You may install the necessary DLL by downloading cuDNN from this URL: 
      https://developer.nvidia.com/cudnn""")  
      
        if not candidate_explanation:  
            print(""" 
    - All required DLLs appear to be present. Please open an issue on the 
      TensorFlow GitHub page: https://github.com/tensorflow/tensorflow/issues""")  
      
        sys.exit(-1)  
      
      
    if __name__ == "__main__":  
        main()  
    

    如果失败的话记得检查一下报错信息,没有安装CUDA8.0或者环境配置不对:

    Could not load 'cudart64_80.dll'. The GPU version of TensorFlow
    requires that this DLL be installed in a directory that is named in
    your %PATH% environment variable. Download and install CUDA 8.0 from
    this URL: https://developer.nvidia.com/cuda-toolkit

    安装成功:

    TensorFlow successfully installed.
    The installed version of TensorFlow includes GPU support.

    注意几点

    1. Cuba一定要安装8.0版本!Cuba一定要安装8.0版本!Cuba一定要安装8.0版本!
    2. Anaconda并不是必需,可以使用可以不使用
    3. Cudnn的版本我这里提示的是Cudnn6,大家看提示安装

    后续

    跑个DQN玩FlappyBird测试:


    image

    相关文章

      网友评论

        本文标题:Tensorflow(GPU) 在Win10+Cuda8.0环境

        本文链接:https://www.haomeiwen.com/subject/yjewxftx.html