您的位置:首页 > 编程语言 > Python开发

【深度学习笔记】tensorflow-gpu1.13 + Win10 + CUDA10.1 + CUDNN7.5.0 + Python3.7 + VS2019安装

2019-04-14 17:31 3127 查看
版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/huanyingzhizai/article/details/89298964

目 录

  • 2  安装CUDA Toolkit 10.1
  • 3  安装cuDNN v7.5.0 (Feb 25, 2019), for CUDA 10.1
  • 4  配置环境变量
  • 5  安装tensorflow1.13(with Anaconda)
  • 6  直接安装tensorflow(without Anaconda)
  • 7  试用Tensorflow-gpu

    1 准备工作

    Win10上搭建TensorFlow的开发环境需要至少需要安装3个软件,分别为:1.python,2.CUDA和CuDNN,3.TensorFlow(GPU版)。安装前一定要确认好每个软件的版本是否相互支持。

    1.1(坑一)确认电脑上没有安装tensorflow的CPU版本,有的话要先卸载

    1.2(坑二)更新自己的显卡驱动

    因为刚刚重装了电脑发现显卡驱动竟然丢了,那还怎么用GPU,赶紧到官网下载最新的,否则会报错:cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version

    也可以在命令行运行命令nvidia-smi查看自己的显卡状态是否有问题

    1.3 查看python版本

    import sys
    sys.version

    ‘3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)]’

    1.4 查看GPU版本

    我的电脑 -> 属性 -> 设备管理器 -> 显示适配器,我的版本是NVIDIA GeForce GTX 1050 with Max-Q Design

    1.5 查看Tensorflow版本

    GitHub:https://github.com/tensorflow/tensorflow/releases

    Pypi:https://pypi.org/project/tensorflow/#history

    1.6 查看版本支持

    windows和VS的CUDA支持:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html

    可以看到CUDA10.1支持win10和VS2019的版本

    目前官网上没有给出py3.7和tensorflow1.13的支持,但是有看到网友成功安装的帖子,所以这里进行试装

    GPU的CUDA支持:https://developer.nvidia.com/cuda-gpus

    显示支持6.1以上版本

    2 安装CUDA Toolkit 10.1

    下载地址:https://developer.nvidia.com/cuda-toolkit-archive

    运行cuda_10.1.105_418.96_win10.exe,修改安装路径,之后会进行兼容性检查(按照上面对应的版本应该是没有问题的),同意许可协议后选择自定义安装

    取消勾选NVIDIA GeForce Experience(这里可能会有点卡,稍等一会)

    选择安装路径

    显示缺少VS支持,点击链接安装VS(选择通用Windows平台开发、使用C++的桌面开发、Python开发和Visual Studio 扩展开发),安装过程耗时较长,不要认为是卡了

    安装好Visual Studio后再重新安装CUDA,过程中会有几次重启(自动安装NVIDIA Nsight HUD Launcher 2019.1)

    提示Visual Studio2015/2013/2012未安装,不用管,点击下一步。重启后安装完成。

    命令行输入nvcc -V,如果输出是 CUDA 版本信息,则说明安装成功

    3 安装cuDNN v7.5.0 (Feb 25, 2019), for CUDA 10.1

    CuDNN下载地址:https://developer.nvidia.com/rdp/cudnn-download(简单注册后即可下载)

    把下载好的压缩包解压后得到三个文件夹,拷贝到CUDA的安装目录下(“C:\NVIDIA\CUDAv10.0”)

    4 配置环境变量

    控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量

    确认环境变量,CUDA_PATH和CUDA_PATH_V10已经存在

    依此添加下列三个路径到Path里

    C:\NVIDIA\CUDAv10.1\bin

    C:\NVIDIA\CUDAv10.1\include

    C:\NVIDIA\CUDAv10.1\lib\x64

    5 安装tensorflow1.13(with Anaconda)

    第一次安装的时候是这么装的,后来重做了系统没有安装Anaconda,用的后一种方法,后面实例也是按照后一种来的,如果不想用Anaconda安装,直接跳到下一部分即可

    打开Anaconda Prompt,配置清华仓库镜,输入

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --set show_channel_urls yes

    创建运行环境,输入

    conda create -n tensorflow-gpu python=3.7    # 新建一个名字叫tensorflow-gpu,python版本为3.7的运行环境

    输入“y”安装提示需要安装的包

    激活并进入环境,使后续指令在激活的环境中生效,输入

    conda activate tensorflow-gpu

    升级pip到最新版,防止稍后的安装时,出现错误,输入

    python -m pip install --upgrade pip

    安装需要的tensorflow版本(查了一下有4个代码,因为以前没有安装过所以用了第一条,其余的可以视自己的情况决定用哪条命令)

    pip install tensorflow-gpu    # 默认为最新版本(安装时正好是1.13,如需其他版本如1.12.0输入pip install tensorflow-gpu==1.12.0即可)
    pip install --upgrade tensorflow-gpu    # 更新tensorflow-gpu
    pip install --ignore-installed --upgrade tensorflow-gpu    # 更新tensorflow-gpu,忽略已经安装的部分
    pip install --force-reinstall --upgrade tensorflow-gpu    # 更新tensorflow-gpu,先卸载已经安装的部分

    至此全部安装完毕

    6 直接安装tensorflow(without Anaconda)

    6.1 查看CPU的指令集

    先查看自己CPU是否支持AVX2指令集,可以通过下载CPU-Z检测:

    http://download.cpuid.com/cpu-z/cpu-z_1.87-cn.exe

    可以看到这台电脑支持AVX2指令集

    6.2 下载对应版本的tf

    https://github.com/fo40225/tensorflow-windows-wheel

    找到对应的版本

    分别下载001和002(如果不支持下载SSE2的版本)

    下载完成之后解压得到tensorflow_gpu-1.13.1-cp37-cp37m-win_amd64.whl

    安装tensorflow

    以管理员身份打开命令行

    进入 .whl 文件的目录

    通过pip命令安装 .whl 文件

    7 试用Tensorflow-gpu

    进入ipython并输入以下代码

    import tensorflow as tf

    查看CUDA是否可用

    a = tf.test.is_built_with_cuda()
    print(a)

    显示True说明可用

    查看GPU是否可用

    b = tf.test.is_gpu_available(cuda_only = False, min_cuda_compute_capability = None)
    print(b)

    显示True说明可用

    7.1 测试1

    打开ipython输入

    import tensorflow as tfhello = tf.constant('Hello, TensorFlow!')
    sess = tf.Session()
    print(sess.run(hello))
    

    输出

    b'Hello, TensorFlow!'

    7.2 直接在jupyter中测试tensorflow-gpu

    在运行代码前我们打开任务管理器 -> 性能,查看当前GPU的状态,正常情况下你没运行什么程序,GPU利用率什么的都是0

    之后运行下面的代码

    import tensorflow as tf
    with tf.Session(config = tf.ConfigProto(allow_soft_placement = True, log_device_placement = True)) as sess:
    # allow_soft_placement=True 表示使用gpu不能使用gpu时使用cpu
    # log_device_placement=False 不打印日志,不然会刷屏,为了查看是否使用gpu,我们设置为True
    a = tf.constant(1)
    b = tf.constant(3)
    c = a + b
    print('结果是:%d\n 值为:%d' % (sess.run(c), sess.run(c)))
    

    我们再查看GPU的状态可以发现利用率发生了变化,说明确实用到了GPU

    同时也可以确认命令行中的运行日志看到使用了GPU

  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: 
    相关文章推荐