zoukankan      html  css  js  c++  java
  • Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)

    前言

    配置环境,研究了一整天,踩了很多坑,在网上找了很多资料,发现基本上都没非常明确的教程,所以今天想分享一下配置tensorflow GPU版本的经验,希望能让各位朋友少走些弯路。(PS:一切的前提,你需要有一张Nvidia显卡。我的显卡是 GT940MX)

    Tensorflow有两个版本:GPU和CPU版本,CPU的很好安装;GPU 版本需要 CUDA 和 cuDNN 的支持,如果你是独显+集显,那么推荐你用GPU版本的,因为GPU对矩阵运算有很好的支持,会加速程序执行!并且CUDA是Nvidia下属的程序,所以你的GPU最好是Nvidia的,AMD的显卡没有CUDA加速!满足以上条件之后,你需要查看一下你的英伟达GPU是否支持CUDA,以下是Geforce支持的目录:

    你也可以点击查看你的GPU是否支持CUDA

    满足以上条件之后,你就可以安装Tensorflow了!

    第一步:安装Anaconda

    1.下载和安装

    下载地址:https://www.anaconda.com/download/

    我系统是64位,所以下载 64-Bit Graphical Installer (631 MB),之后就是进行安装了。

    和安装其他软件没有什么区别,需要注意的是这一步,不要勾选**“Add Anaconda to my PATH enviroment variable”,我们后面会手动加入。

    接下来就是等待了,安装结束后需要测试是否能正常使用,打开CMD输入“conda”命令,发现提示“'conda' is not recognized as an internal or external command, operable program or batch file.”

    这是由于我们没有配置环境变量的原因。

    2.配置Anaconda环境变量

    我们点击左下角搜索栏搜索“环境变量”

    点击环境变量

    选择“Path”,点击“编辑”

    将以下三个路径加入,注意这里要换成你自己的安装路径。

    • C:Users -yaoguoAppDataLocalContinuumanaconda3
    • C:Users -yaoguoAppDataLocalContinuumanaconda3Scripts
    • C:Users -yaoguoAppDataLocalContinuumanaconda3Libraryin

    然后点击“确定”保存,这回再测试一下,再cmd中输入“conda -V”,能正常显示版本号,证明已经配置好了。

    第二步:安装TensorFlow-GPU

    打开tensorflow官网:https://www.tensorflow.org/install/install_windows#installing_with_anaconda

    跟着操作步骤走就可以了。

    1.创建conda环境

    通过调用下列命令,创建一个名为“tensorflow”的conda环境:

    conda create -n tensorflow pip python=3.5
    

    等待相应包的安装,如果国内网络太慢的话,可以为conda设置清华源,这样速度能快一点,具体配置过程,网上查一下吧,此处不再讲述。如果看到这样的提示,就证明conda环境创建成功。

    2.激活环境

    通过以下命令激活conda环境:

    activate tensorflow
    

    这样就进入了刚创建的“tensorflow”环境。

    3.安装tensorflow-gpu

    安装GPU版本的tensorflow需要输入以下命令:

    pip install --ignore-installed --upgrade tensorflow-gpu 
    

    如果只需要安装CPU版本的tensorflow则输入以下命令:

    pip install --ignore-installed --upgrade tensorflow
    

    这样就安装成功了。

    注意:务必注意一点,在安装完tensroflow后,由于我们是新创建的conda环境,该环境中基本上是空的,有很多包和IDE并没有安装进来,例如“Ipython”,“spyder”此时如果我们在该环境下打开spyder/Ipyton/jupyter notebook等,会发现其实IDE使用的kernel并不是新建立的这个环境的kernel,而是“base”这个环境的,而“base”环境中我们并没有安装tensorflow,所以一定无法import。这也就是为什么有很多人在安装好tensorflow后仍然在IDE里无法正常使用的原因了。

    通过以下命令安装Anaconda基础包

    conda install anaconda
    

    这回,我们测试一下是否能import tensorflow

    程序报错,这是由于我们虽然安装好了tensorflow-gpu,但是还需要安装CUDA Toolkit 和 cuDNN。

    第三步:安装CUDA Toolkit + cuDNN

    1.查看需要安装的CUDA+cuDNN版本

    注意,tensorflow是在持续更新的,具体安装的CUDA和cuDNN版本需要去官网查看,要与最新版本的tensorflow匹配。

    点击查看最新tensorflow支持的CUDA版本:https://www.tensorflow.org/install/install_windows#requirements_to_run_tensorflow_with_gpu_support

    现在(PS:此博客书写日期 2018年7月5日)最新版tensorflow支持的是 CUDA® Toolkit 9.0 + cuDNN v7.0,一定注意,安装的版本一定一定要正确,不要看NVIDIA官网推出CUDA® Toolkit 9.2了就感觉最新版的更好,而安装最新版,这样很可能会导致tensorflow无法正常使用,所以一定要跟着tensorflow 官网的提示来。

    2.下载CUDA + cuDNN

    在这个网址查找CUDA已发布版本:https://developer.nvidia.com/cuda-toolkit-archive

    进入下载界面

    下载好CUDA Toolkit 9.0 后,我们开始下载cuDnn 7.0,需要注意的是,下载cuDNN需要在nvidia上注册账号,使用邮箱注册就可以,免费的。登陆账号后才能下载。

    cuDNN历史版本在该网址下载:https://developer.nvidia.com/rdp/cudnn-archive

    这样,我们就下载好了 CUDA Toolkit 9.0 和 cuDnn 7.0,下面我们开始安装。

    3.安装 CUDA Toolkit 9.0 和 cuDnn 7.0

    至关重要的一步:卸载显卡驱动

    由于CUDA Toolkit需要在指定版本显卡驱动环境下才能正常使用的,所以如果我们已经安装了nvidia显卡驱动(很显然,大部分人都安装了),再安装CUDA Toolkit时,会因二者版本不兼容而导致CUDA无法正常使用,这也就是很多人安装失败的原因。而CUDA Toolkit安装包中自带与之匹配的显卡驱动,所以务必要删除电脑先前的显卡驱动。

    安装

    此处选择“自定义(高级)”

    勾选所有

    一路通过即可。

    接下来,解压“cudnn-9.0-windows10-x64-v7.zip”,将一下三个文件夹,拷贝到CUDA安装的根目录下。

    这样CUDA Toolkit 9.0 和 cuDnn 7.0就已经安装了,下面要进行环境变量的配置。

    配置环境变量

    将下面四个路径加入到环境变量中,注意要换成自己的安装路径。

    C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0

    C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0in

    C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0libx64

    C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0libnvvp

    到此,全部的安装步骤都已经完成,这回我们测试一下。

    第四步:测试

    1.查看是否使用GPU

    import tensorflow as tf
    tf.test.gpu_device_name()
    

    2.查看在使用哪个GPU

    from tensorflow.python.client import device_lib
    device_lib.list_local_devices()
    

    好了大功告成!

    希望这篇博文能给大家带来帮助,如有任何错误,欢迎指教交流。

  • 相关阅读:
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    PHP serialize() 函数
    PHP print_r() 函数
  • 原文地址:https://www.cnblogs.com/guoyaohua/p/9265268.html
Copyright © 2011-2022 走看看