更换GPU——重跑Mask-RCNN Demo

使用GPU跑Mask-RCNN Demo

使用CPU跑深度学习当然没问题,但是随着深度学习往CV方向(计算机视觉)发展,需要计算机不断对图像进行处理,由此伴随着网络层数的加深,可能会让你的CPU会越来越力不从心!

而GPU(Graphics Processing Unit)就是为了处理图像而诞生的,因此这是GPU与生俱来的优势,

让我们通过以下这个短视频来体会一下CPU与GPU的区别吧

视频需要使用Dplayer视频插件,日后更新上来

OK,了解完GPU的强大之处后,就让我们把之前的Mask-RCNN项目换成GPU跑一遍吧!

: 本文以下内容:需要电脑至少有一块NVIDA(英伟达)GPU处理器才能顺利进行

本文Demo运行的外部环境: Win10(64bits) + Anaconda3(2020.11版) + GTX 1060 Max-Q

CUDA&cuDNN

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。

cuDNN(CUDA Deep Neural Network)是基于CUDA运算平台,用于深度神经网络的GPU加速库。

要想实现使用GPU运行Mask-RCNN Demo,必须先安装CUDA和cuDNN

查看CUDA版本支持

首先,来查看你电脑上能支持的CUDA的最高版本吧!

Step1:打开cmd命令行窗口,输入nvidia-smi可以看到如下内容:

圈起来的部分就是你的NVIDIA显卡所支持的CUDA版本,本文所使用的电脑最高支持CUDA11.1。

如果输入nvidia-smi提示未找到命令,需要在环境变量Path中添加:

``C:\Program Files\NVIDIA Corporation\NVSMI`

在后面的下载安装步骤中,首先需要保证 选择安装的cuda版本 <= cmd内显示的支持版本

并且你需要参考下图版本对应关系,保证CUDA、cuDNN、Python、tensorflow-gpu的版本一致性。

本文基于的环境配置版本为:

  • tensorflow-gpu-1.5.0

  • python3.6

  • CUDA9.0

  • cuDNN7.0.5

安装CUDA

CUDA已发布版本https://developer.nvidia.com/cuda-toolkit-archive

本文选择下载安装CUDA9.0(因为之前跑Demo时已经安装tensorflow-gpu-1.5.0了)

国内下载速度较慢,需要使用外网,如果你也选择安装CUDA9.0版本,可以选择从我的百度网盘中下载。

Step1: 访问NVIDIA官网,选择下载CUDA9.0

Step2: 安装CUDA9.0

运行安装程序:

选择自定义,然后勾选全部安装:

安装位置推荐不要改动,就在C盘就行:

这里还要求电脑安装过Visual Studio (2015/2017),不然装不上nsight:

本文电脑已安装VS2017

安装完成:

安装cuDNN

CUDNN历史版本https://developer.nvidia.com/rdp/cudnn-archive

本文选择下载安装cuDNN7.0.5(与CUDA9.0版本对应)

国内下载速度较慢,需要使用外网,如果你也选择安装cuDNN7.0.5版本,可以选择从我的百度网盘中下载。

Step1: 访问NVIDIA官网,选择下载cuDNN9.0

下载好cuDNN,解压,把对应文件夹中的东西复制进去即可。

Tensorflow-gpu

如果你有参考我上一篇文章,并成功跑起了Demo,那么已经安装过tensorflow-gpu了

运行如下程序来简单测试是否正在使用GPU进行运算:

import os
# os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# 使用编号为0的GPU
os.environ["CUDA_VISIBLE_DEVICES"] = '0'

import tensorflow as tf
from tensorflow.python.client import device_lib


print(device_lib.list_local_devices())
print(tf.test.gpu_device_name())

sess=tf.Session()
a=tf.constant(1)
b=tf.constant(3)
print(sess.run(a+b))

可能遇到的问题:

为什么Tensorflow还是使用的CPU而非GPU?

Demo运行

碰壁

为什么Tensorflow还是使用的CPU而非GPU

如果你既安装了tensorflow,又安装了tensorflow-gpu,请保证tensorflow-gpu版本>=tensorflow版本

最保险的方法,是把tensorflow和tensorflow-gpu都卸了,并只重新安装tensorflow-gpu

# 卸载
conda uninstall tensorflow==1.5.0
conda uninstall tensorflow-gpu==1.5.0

# 重新安装
conda install tensorflow-gpu==1.5.0

然后再运行上面的测试.py试试。