2022【超详细】搭建深度学习环境与配置 tensorflow2.7+keras2.7+CUDA11.6+cuDNN 对应版本

文章目录

  • 前言
  • 一、可行的对应版本配置
  • 二、安装步骤
  • 1. 显卡算力和显卡驱动版本
  • 2. tensorflow对应的CUDA、cuDNN和python版本
  • 3. tensorflow 和 keras 安装
  • 4. CUDA 和 cuDNN 下载
  • 5. CUDA 和 cuDNN 安装
  • 6. 运行测试
  • 三、名词解释

  • 前言

    时间:2022年1月16日01:41:51
    环境:Win10 64位,RTX2060 显卡算力7.5,VScode,python3.7.0。

    搭建tensorflow和keras深度学习环境的时候,即使安装成功,由于版本不匹配的问题,导致频繁报错,比如版本不对会出现导入模块错误。由于项目原因要用python3.7.0,但我的tensorflow和keras都是最新版2.7.0,搜遍全网也没有找到对应版本的配置,尝试了很多版本,每次下载都是近3G大小,匹配过程中各种报错,折腾了三四天,简直让人炸裂。

    各位一定要根据自己电脑的显卡算力、显卡驱动版本、python版本、tensorflow版本、keras版本,去匹配对应的CUDA和cuDNN版本。各版本并非完全唯一对应,而是有一定的范围区间。


    一、可行的对应版本配置

    python3.7.0+CUDA11.6.0+cuDNN8.3.2+tensorflow2.7.0+Keras2.7.0
    python3.7.0+CUDA11.3.1+cuDNN8.2.1+tensorflow2.7.0+Keras2.7.0
    python3.7.0+CUDA10.1.2+cuDNN7.6.5+tensorflow2.2.0+keras 2.3.1

    二、安装步骤

    1. 显卡算力和显卡驱动版本

    显卡算力决定你的CUDA版本区间:
    NIVDIA显卡算力官方查询


    维基百科查询显卡算力对应的CUDA版本区间(境内无法正常打开):
    维基百科CUDA

    比如我的显卡RTX2060 算力7.5,那么可以下载的CUDA版本区间为10.0-10.2 和 11.0以上。

    显卡驱动版本,在NVIDIA控制面板的系统信息可查询到,建议更新到最新版本,这样就不会因驱动版本而下载CUDA版本受限。
    NVIDIA官方显卡驱动更新


    更新显卡驱动程序,建议在选项 Download Type 选 Studio Driver(SD),因为对深度学习有利。

    NVIDIA官方 CUDA与显卡驱动版本对应表查询

    比如我的显卡驱动版本是最新版511.23,则可以下载CUDA 11.6 GA及以下所有版本,它决定了你能下载CUDA版本的上限。

    因此,显卡算力和显卡驱动版本共同决定你能下载的CUDA版本区间。

    2. tensorflow对应的CUDA、cuDNN和python版本

    官方查询 tensorflow-gpu与CUDA cuDNN Python版本关系


    或者参考我在本文第一部分提到的测试的配置版本。

    python3.7.0+CUDA11.6.0+cuDNN8.3.2+tensorflow2.7.0+Keras2.7.0
    python3.7.0+CUDA11.3.1+cuDNN8.2.1+tensorflow2.7.0+Keras2.7.0
    python3.7.0+CUDA10.1.2+cuDNN7.6.5+tensorflow2.2.0+keras 2.3.1

    3. tensorflow 和 keras 安装

    CMD命令行输入:

    pip install tensorflow
    pip install keras
    # 或用豆瓣镜像源下载,速度比较快
    pip install tensorflow -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    pip install keras -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    

    默认下载的是最新版2.7.0。直接下载的是国外源速度慢,可以换成国内镜像源(豆瓣、阿里云、清华大学等)。注意tensorflow2.7.0默认包含cpu和gpu版,无需区分安装,但其他版本安装时区分CPU版和GPU版(tensorflow-gpu)。如果要下载特定版本的,如:

    pip install tensorflow==2.2.0 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    pip install tensorflow-gpu==2.2.0 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    pip install keras==2.3.1 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    

    4. CUDA 和 cuDNN 下载

    CUDA下载有两种版本,local(本地版) 和 network(在线版),建议下载在线版,文件只有几十M。本地版内置了显卡驱动程序和各种组件的可选安装,文件有2.2G大小。

    CUDA最新版(v11.6.0)和归档版官方下载

    cuDNN最新版(v8.3.2)官方下载
    cuDNN归档版官方下载
    cuDNN

    5. CUDA 和 cuDNN 安装

    CUDA安装选自定义(高级)

    自定义安装选项只选CUDA的4个(Runtime、Development、Samples、Documentation)。其他的看你需求,Visual Studio Integration 是VS的集成,我用的IDE是VScode,不需要VS。

    NVIDIA GeForce Experience 是显卡驱动程序,如果你已经更新了显卡驱动版本,就不用选了,因为每个CUDA版本里面都含显卡驱动程序,如果你每次都选相当于每次更新显卡驱动版本。Other components 是声卡等设备驱动程序,我电脑有装了,不用选。

    然后选择安装路径,点击安装,本地版的很快,在线版的需要联网下载安装,慢些。

    cuDNN下载好后解压,把里面的三个文件夹的内容分别移到CUDA安装目录里对应的同名文件夹里面。其中include和bin文件夹可以直接移动,lib文件夹内容要移动到lib\x64目录下。

    这时,环境变量的Path里可以看到CUDA的两个变量。如果你安装了多个CUDA版本,只需要把该版本的两个变量移到最上面,就会激活它。

    6. 运行测试

    查看python版本和安装的模块,CMD命令行输入:

    python --version
    pip list
    


    查看CUDA 和 tensorflow的版本,CMD命令行输入:

    nvcc -V # 查看CUDA版本
    import tensorflow as tf
    print(tf.__version__) # 查看tensorflow版本
    tf.test.is_gpu_available() # 测试GPU加速是否可用,如果最后结果为True,则可用
    


    或者在CUDA安装目录查看版本:
    D:\JavaIDE\CUDA\NVIDIA GPU Computing Toolkit\CUDA\v11.6,右击version.json 用记事本打开即可查看CUDA版本;

    或者在D:\JavaIDE\CUDA\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\demo_suite:
    右击空白处打开PowerShell\CMD终端,命令行输入:

     .\deviceQuery.exe
    


    查看cuDNN版本:
    在CUDA安装目录D:\JavaIDE\CUDA\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include:
    右击cudnn_version.h(低版本的是cudnn.h)用记事本打开即可查看cuDNN版本。比如我的cuDNN就是v8.3.2版本。

    跑一个python程序测试:

    之前在python3.7.0+CUDA10.1.2+cuDNN7.6.5+tensorflow 2.2.0+keras 2.3.1配置环境,运行情况:

    import keras # 如果返回 Using TensorFlow backend 表示安装成功,如果报错则说明 keras与tensorflow的版本对应错了
    


    一切正常。

    三、名词解释

    TensorFlow:一个开源软件库,用于各种感知和语言理解任务的机器学习。

    Keras:一个用Python编写的开源神经网络库,能够在TensorFlow、Microsoft Cognitive Toolkit、Theano或PlaidML之上运行。Keras旨在快速实现深度神经网络,专注于用户友好、模块化和可扩展性。

    CUDA:统一计算架构。专为GPU同时处理多重任务而设计,大规模的并行计算处理,十分适合对图形处理、语音识别、视频等领域进行分析渲染。

    cuDNN:深度神经网络库,针对CUDA优化,实现高性能GPU加速。

    来源:霍灵渊

    物联沃分享整理
    物联沃-IOTWORD物联网 » 2022【超详细】搭建深度学习环境与配置 tensorflow2.7+keras2.7+CUDA11.6+cuDNN 对应版本

    发表评论