2021-11-23-GPU版本Tensorflow+Keras环境安装与配置

2021-11-23-GPU版本Tensorflow+Keras环境安装与配置,第1张

2021-11-23-GPU版本Tensorflow+Keras环境安装与配置 前言
  • 该文章仅做记录使用,方便后续自己查阅,内容参考及引用皆已标注。
  • 目前TensorFlow的最新版本(2.7)已经默认支持CPU和GPU。
  • 安装前需要先确认显卡算力是否达到最新版的要求,算力< 3.0的版本本文暂不涉及。
  • 自己亲测的组合有以下两种:(1)旧版(3.0 <算力 < 3.5):python3.6.5+CUDA8.0+cuDNN7.14+tensorflow1.2.0
    (2)新版(算力 > 3.5):python3.8.12+cudatoolkit11.3.1+cudnn8.2.1+tensorflow2.7+Keras2.7
  • 本部分内容的参考来源和网址如下,这里仅做整合:
    [1] 神经网络框架搭建 by 孙小亘
    [2] tensorflow各个版本的CUDA以及cuDNN版本对应关系 by LoveMIss-Y
    [3] Tensorflow-gpu安装超详细!!! by 东海扬尘_BingO
    [4] 维基百科-CUDA简介(无梯子不好打开)
一、TensorFlow的GPU各个版本与CUDA、cuDNN关系[2] 1、显卡算力(compute capability)

(1)nvidia官网查看自己显卡的具体算力。
(2)根据维基百科指示查看自己适合的CUDA版本。(该部分图表有待验证)
(3)确认所需的CUDA Toolkit和cuDNN版本[2],最新版查看TensorFlow官网最底部。
CUDA Toolkit(新版+旧版)、cuDNN(需登陆下载新版+旧版)。

表 GPU-经过官网测试的构建配置
版本Python 版本编译器编译工具cuDNNCUDAtensorflow_gpu-2.6.03.6-3.9MSVC 2019Bazel 3.7.28.111.2tensorflow_gpu-2.5.03.6-3.9MSVC 2019Bazel 3.7.28.111.2tensorflow_gpu-2.4.03.6-3.8MSVC 2019Bazel 3.1.08.011.0tensorflow_gpu-2.3.03.5-3.8MSVC 2019Bazel 3.1.07.610.1tensorflow_gpu-2.2.03.5-3.8MSVC 2019Bazel 2.0.07.610.1tensorflow_gpu-2.1.03.5-3.7MSVC 2019Bazel 0.27.1-0.29.17.610.1tensorflow_gpu-2.0.03.5-3.7MSVC 2017Bazel 0.26.17.410tensorflow_gpu-1.15.03.5-3.7MSVC 2017Bazel 0.26.17.410tensorflow_gpu-1.14.03.5-3.7MSVC 2017Bazel 0.24.1-0.25.27.410tensorflow_gpu-1.13.03.5-3.7MSVC 2015 update 3Bazel 0.19.0-0.21.07.410tensorflow_gpu-1.12.03.5-3.6MSVC 2015 update 3Bazel 0.15.07.29.0tensorflow_gpu-1.11.03.5-3.6MSVC 2015 update 3Bazel 0.15.079tensorflow_gpu-1.10.03.5-3.6MSVC 2015 update 3Cmake v3.6.379tensorflow_gpu-1.9.03.5-3.6MSVC 2015 update 3Cmake v3.6.379tensorflow_gpu-1.8.03.5-3.6MSVC 2015 update 3Cmake v3.6.379tensorflow_gpu-1.7.03.5-3.6MSVC 2015 update 3Cmake v3.6.379tensorflow_gpu-1.6.03.5-3.6MSVC 2015 update 3Cmake v3.6.379tensorflow_gpu-1.5.03.5-3.6MSVC 2015 update 3Cmake v3.6.379tensorflow_gpu-1.4.03.5-3.6MSVC 2015 update 3Cmake v3.6.368tensorflow_gpu-1.3.03.5-3.6MSVC 2015 update 3Cmake v3.6.368tensorflow_gpu-1.2.03.5-3.6MSVC 2015 update 3Cmake v3.6.35.18tensorflow_gpu-1.1.03.5MSVC 2015 update 3Cmake v3.6.35.18tensorflow_gpu-1.0.03.5MSVC 2015 update 3Cmake v3.6.35.18 二、具体安装方式

以(python3.8.12+cudatoolkit11.3.1+cudnn8.2.1+tensorflow2.7+Keras2.7)为例
(python3.6.5+CUDA8.0+cuDNN7.14+tensorflow1.2.0)暂不介绍

1.基础环境

台式电脑环境:win10-64位,CPU-i5-9400F,内存-16G,显卡(GPU)——NVIDIA GeForce GT 710。(最后发现这个显卡算力只有2.1,没法用GPU版本)
笔记本电脑环境:win10-64位,CPU- i7-8750H,内存16G,显卡 (GPU)——NVIDIA GeForce RTX 2070 with Max-Q Design(算力:7.5)
编译环境:PyCharm+Anaconda
备选编译环境:VScode

Anaconda优点是conda的第三方库管理,可直接下载cudatoolkit和cudnn,无需在NV官网下载。
PyCharm利于具体代码编写和多个虚拟环境之间的切换。

2、Anaconda环境

(1)安装Anaconda
下载Anaconda,安装时注意在高级安装选项时,全部勾选,第一个是让Anaconda自己为我们添加环境变量,减少我们的负担。第二个是选择将3.8作为默认的python版本。Win+R调出cmd
输入conda -V,出现Anaconda的版本号,即为安装成功。
(2)添加conda和pip软件源
默认源通常下载速度慢,将清华大学的conda软件源添加进去,保证安装的速度。
在anaconda下的anaconda powershell prompt中进行输入[1][3]:

conda config –show 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mro/ 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/ 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/ 
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/ 
conda config --set show_channel_urls yes 
conda config --show
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

此时在C盘用户目录下会生成.condarc文件用于保存该设置。
(3)建立python虚拟环境

conda create -n tensorflow-venv python=3.8

tensorflow-venv为虚拟环境名,python版本可根据需要自行替换。

3、安装CUDA(cudatoolkit)+cuDNN

TensorFlowGPU计算,但需安装CUDA(Compute Unified Device Architecture),即计算机并行计算架构。安装方式有两种,一种是基于anaconda包管理的安装方式(强烈推荐),另一个中基于官网下载的安装方式(可保证版本最新)。

(1)基于anaconda包管理的安装方式
  • CMD中输入activate tensorflow-venv以激活环境。
  • CMD中输入conda install cudatoolkit=x.x(xx为自己需要的版本号)
  • CMD中输入conda install cudnn=x.x
  • CMD中输入pip install tensorflow-gpu=x.x.x
  • CMD中输入python进入python环境,输入import tensorflow as tf后,再次输入 tf.test.is_gpu_available(),若最后为True表示GPU可用。
(2)基于官网下载的安装方式

按以下步骤进行:

  • 确认显卡驱动,这个可以不装,要根据自己的显卡情况。(NVIDIA download drivers)。

  • 下载安装CUDA Toolkit,安装包2个G以上,参考文档。

  • 下载CuDnn,将压缩包解压缩并复制到C:Program FilesNVIDIA GPU Computing ToolkitCUDAvx.x(例如v11.5),参考文档。

  • 复制以下文件到CUDA toolkit文件夹.

    a.复制 < installpath >cudabincudnn*.dll 到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAvx.xbin.
    b.复制 cudaincludecudnn*.h 到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAvx.xinclude.
    c.复制 cudalibx64cudnn*.lib 到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAvx.xlibx64.

  • 设置环境变量

    4.设置以下环境变量Set the following environment variables to point to where cuDNN is located. To access the value of the $(CUDA_PATH) environment variable, perform the following steps:
    a.Open a command prompt from the Start menu.
    b.Type Run and hit Enter.
    c.Issue the control sysdm.cpl command.
    d.Select the Advanced tab at the top of the window.
    e.Click Environment Variables at the bottom of the window.
    f.Ensure the following values are set:
    Variable Name: CUDA_PATH
    Variable Value: C:Program FilesNVIDIA GPU Computing ToolkitCUDAvx.x
    5.这个是关于VS编辑器的,这个仅记录Include cudnn.lib in your Visual Studio project.
    a. Open the Visual Studio project and right-click on the project name.
    b.Click linker > Input > Additional Dependencies.
    c.Add cudnn.lib and click OK.

4、其他内容

(1)指定后端引擎的方式
用记事本打开C:UsersADMIN.keras.json,显示以下内容:
{ “floatx”: “float32”,
“epsilon”: 1e-07,
“backend”: “tensorflow”,
“image_data_format”: “channels_last”}

附加:可以编辑指定backend是Theano,或者谷歌研发的 TensorFlow。

(2)CUDA 工具包附带的 CUPTI[2]

CUPTI,即CUDA Profiling Tools Interface (CUPTI)。在CUDA分析工具接口(CUPTI)能够分析和跟踪靶向CUDA应用程序的工具的创建。CUPTI提供以下API:Activity API,Callback API,事件API,Metric API,和Profiler API。使用这些API,您可以开发分析工具,深入了解CUDA应用程序的CPU和GPU行为。CUPTI作为CUDA支持的所有平台上的动态库提供。请参阅CUPTI文档。

(3)显卡算力不足的报错界面

2021-11-17 17:17:49.527327: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1900] Ignoring visible gpu device (device: 0, name: GeForce GT 710, pci bus id: 0000:01:00.0, compute capability: 2.1) with Cuda compute capability 2.1. The minimum required Cuda capability is 3.5.
2021-11-17 17:17:49.527911: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5593121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存