Tensorflow 2.1 GPU 安装和测试

  • 1. 硬件要求
  • 2. 软件要求
  • 简单的描述一下它们的功能
  • 3. 安装步骤
  • 3.1. nvidia 驱动可以到这个地址下载, 我的显卡是RTX 2070的,你可以根据你的显卡下载驱动**
  • 3.2. 下载Cuda
  • 3.3. 下载Cudnn
  • 3.4. 运行这个命令安装tensorflow 2.1 gpu 版本
  • 3.5. 用tensorflow 代码测试是不是安装成功
  • 4. 解决问题
  • 4.1 如果你运行Keras的RNN或者LSTM时,遇到下面问题


1. 硬件要求

支持以下带有 GPU 的设备:
CUDA® 计算能力为 3.5 或更高的 NVIDIA® GPU 卡。请参阅支持 CUDA 的 GPU 卡列表。

2. 软件要求

必须在系统中安装以下 NVIDIA® 软件:

NVIDIA® GPU 驱动程序:CUDA 10.1 需要 418.x 或更高版本。
CUDA® 工具包:TensorFlow 支持 CUDA 10.1(TensorFlow 2.1.0 及更高版本)
CUDA 工具包附带的 CUPTI。
cuDNN SDK(7.6 及更高版本)
(可选)TensorRT 6.0,可缩短在某些模型上进行推断的延迟并提高吞吐量

参考地址: https://tensorflow.google.cn/install/gpu

简单的描述一下它们的功能

nvidia:是显卡,主要是下载它的驱动

Cuda:是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。CUDA的本质是一个工具包(ToolKit)

cuDNN : cuDNN是一个SDK,是一个专门用于神经网络的加速包,

版本信息
N卡驱动版本Geforce- Rtx 2070 SUPER,
Cuda 10.1 ,
Cudnn: cudnn-10.1-windows10-x64-v7.6.5.32,
tensorflow 2.1

3. 安装步骤

3.1. nvidia 驱动可以到这个地址下载, 我的显卡是RTX 2070的,你可以根据你的显卡下载驱动**

https://www.nvidia.com/download/index.aspx?lang=en-usgpu测试组装 gpu如何测试_tensorflow
运行 这个命令看N 卡的驱动的版本号 ----nvidia-smigpu测试组装 gpu如何测试_深度学习_02

3.2. 下载Cuda

CUDA的下载地址为:https://developer.nvidia.com/cuda-downloads

gpu测试组装 gpu如何测试_tensorflow_03

运行这个命令查看Cuda 的信息

. nvcc -V

gpu测试组装 gpu如何测试_神经网络_04

3.3. 下载Cudnn

https://developer.nvidia.com/rdp/cudnn-download 下载后,加它相应的路径到环境变量里。
注意:下载这个比较麻烦,要注册账号,还有翻墙才能搞,我当时用VPN 才能注册账号。

gpu测试组装 gpu如何测试_cuda_05

SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\libx64;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include;%PATH%
SET PATH=C:\tools\cuda\bin;%PATH%

3.4. 运行这个命令安装tensorflow 2.1 gpu 版本

conda install tensorflow-gpu==2.1.0

因为我已经安装

gpu测试组装 gpu如何测试_gpu测试组装_06

3.5. 用tensorflow 代码测试是不是安装成功

import tensorflow as tf
import os
#os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
a = tf.constant(1.)
b = tf.constant(2.)
print(a+b)
print(tf.__version__)
print('GPU:', tf.config.list_physical_devices('GPU'))
print(tf.test.is_gpu_available())

运行结果

tf.Tensor(3.0, shape=(), dtype=float32)
2.1.0
GPU: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
True

4. 解决问题

4.1 如果你运行Keras的RNN或者LSTM时,遇到下面问题

错误Fail to find the dnn implementation. [Op:CudnnRNN]解决办法
使用的版本为tensorflow2.x
原因:gpu内存的问题
解决办法

# 设置gpu内存自增长
gpus = tf.config.experimental.list_physical_devices('GPU')
print(gpus)
for gpu in gpus:
    tf.config.experimental.set_memory_growth(gpu, True)