一.模型介绍

1.resnet 深度残差网络,主要模型有resnet18,resnet34,resnet50,resnet101,resnet152,
ResNet可以提供18、34、50、101、152甚至更多层的网络,同时获得更好的精度,ResNet已经被广泛运用于各种特征提取应用中,
当深度学习网络层数越深时,理论上表达能力会更强,但是CNN网络达到一定的深度后,再加深,分类性能不会提高,而是会导致网络收敛更缓慢,
准确率也随着降低,即使把数据集增大,解决过拟合的问题,分类性能和准确度也不会提高

2.VGG 是由 Simonyan 和 Zisserman 在论文 “Very Deep Convolutional Networks for Large Scale Image Recognition” 中提出卷积神经网络模型,其名称来源于作者所在的牛津大学视觉几何组 (Visual Geometry Group) 的缩写。VGG 中根据卷积核大小和卷积层数目的不同,可分为 A、A-LRN、B、C、D、E 共6个配置 (ConvNet Configuration),其中以 D 和 E 两种配置较为常用,分别称为 VGG16 和 VGG19

3.GoogleNet GoogLeNet是由谷歌公司研究出来的深度学习网络结构,其最大的创新就是提出了Inception模块,
所以2014年提出的GoogLeNet网络又称为Inception V1,后来谷歌公司又不断对其进行改进,先后又提出了V2、V3以及V4的改进版。
Inception V1凭借其独有的Inception结构在控制参数量的同时又扩展了网络的深度,Inception V1网络的深度有22层,
但是参数量却只有500万个,大大少于VGGNet的1亿3000万和AlexNet的6000万的参数量


4.AlexNet 今天人们不会在采用或借鉴 AlexNet 来设计网络来,不过无疑是 AlexNet 出现,在次掀起神经网络的热度。
AlexNet 是 2012年 ImageNet竞赛冠军获得者 Hinton 和他的学生 Alex Krizhevsky 设计的。

5.Inception v3 主要提出了分解卷积,把大卷积因式分解成小卷积和非对称卷积,通过大量使用 Inception 模块的降维和并行结构实现的,
允许减轻结构变化对附近组件的影响

二. 混合精度
深度神经网络(DNN)在许多领域都取得了突破,包括图像处理和理解,语言建模,语言翻译,语音处理,游戏策略以及许多其他领域。 为了获得这些卓越结果,DNN的复杂性一直在增加,这反过来又增加了训练这些网络所需的计算资源。
混合精度训练通过使用低精度算术降低了所需的资源,具有以下好处。

减少所需的内存量。 半精度浮点格式(FP16)使用16位,而单精度(FP32)使用32位。 降低所需的内存可以训练更大的模型或训练时使用更大的batch size。

缩短训练或推理时间。计算的次数或者数据存储的存储十分影响算法的执行时间。半精度使用单精度的一半内存访问,从而降低了在存储层方面所花费的时间。
与单精度相比,NVIDIA GPU的半精度算术吞吐量最多提高了8倍,从而加快了数学受限层的速度
三.测试环境

使用 Tensorflow Benchmark 进行基准测试
镜像: nvcr.io/nvidia/tensorflow:20.10-tf2-py3
CUDA: 1.11(rtx-3090最低cuda版本为1.11)
测试代码:https://github.com/tensorflow/benchmarks
框架:tensorflow
显卡:RTX-3090(腾讯黑石服务器RTX-3090)
启动命令:
GPU:python benchmarks/scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py \
--num_gpus=1 --batch_size=128 --model=vgg16
CPU:python benchmarks/scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py \
--device=cpu --model=googlenet --data_format=NHWC --batch_size=32
# --batch_size 和 --model 可根据具体场景修改
#

四.测试数据

rtx-3090

模型名称

数据格式

32

64

128

256

512     



1 卡

resnet50

fp32

429.86 images/s

493.24

528.54 

540.37



fp16




1269.15

1283.07

VGG16

fp32

251.35

318.07

315.83

322.55


GoogleNet

fp32

985.36

1136.53

1275.25

1359.34


AlexNet

fp32

3171.42

4387.80

5047.62

5229.61


Inception v3

fp32

284.64

323.61

340.32

OOM


               

                 2卡

resnet50

fp32

665.09

861.22

999.67

1041.70


VGG16

fp32

301.28

414.86

543.69

531.09


Inception v3

fp32

500.12

591.12

647.64

OOM


resnet50

fp16




2369.56

2502.95










CPU

模型名称

32

64

128

256



90(核)

resnet50

17.74

16.69

15.14

14.83

VGG16

7.08

7.49

7.50

7.3

GoogleNet

66.30

61.50

54.56

50.36

AlexNet

119.05

142.02

160.15

164.54

Inception v3

14.45

13.86

13.11

12.3