当前位置: 代码迷 >> 综合 >> Benchmark Analysis of Representative Deep Neural Network Architecture论文笔记
  详细解决方案

Benchmark Analysis of Representative Deep Neural Network Architecture论文笔记

热度:27   发布时间:2023-12-18 02:43:24.0

论文地址:Benchmark Analysis of Representative Deep Neural Network Architecture

一 为什么读这篇

蛙神推荐的,对截止2018年10月出现的各种经典CNN网络的一个测评,算是比较新的一篇综述,通过阅读这篇,搞清楚CNN最新的发展脉络。

二 截止阅读时这篇论文的引用次数

被引用次数:25。

三 相关背景介绍

来自意大利和法国的学者,arXiv上的时间为2018年10月

四 论文的主要贡献

1 分析对比了40多种网络在普通平台和嵌入式平台上的识别准确率,模型复杂度,计算复杂度,内存使用,预测时间

2 让研究者知道目前网络已发展到什么程度,有哪些方向值得继续探索

3 让实践者知道如何在资源限制下选择最好的网络

五 详细解读

1 介绍

其他文章都是分析网络层的组成和识别性能,对计算代价方面(内存使用,预测时间)及其对识别效果的影响的分析较少。Canziani等人在2016年年中的时候对嵌入式系统上的网络做过一些分析,不过比较的网络个数较少。Huang等人在2017年的cvpr上分析过一批SOTA的目标检测网络的速度与准确率之间的权衡。本文的目的是进行更全面的比较,同时也在两种平台上进行比较。

几个重要发现

  1. 识别精度不随操作次数的增加而增加:事实上,有些架构的操作次数相对较少,如SE-ResNeXt-50 (32x4d),其识别精度非常高。
  2. 模型复杂度和准确率之前并不是线性关系
  3. 期望的吞吐量(例如用每秒推断的数量表示)是可达到的精度的上限
  4. 不是所有的网络都有效的使用了它们的参数
  5. 几乎所有网络在高配GPU上实时性能都不错,但只有少数在嵌入式上表现过关
  6. 即使网络的模型复杂度很低也得占至少0.6GB的显存

2 benchmark

软件环境:PyTorch,cuDNN-v5.1,CUDA-v9.0

硬件环境-工作站:Titan X,3840 CUDA cores

硬件环境-嵌入式:Jetson TX1 board,Maxwell 256 CUDA cores

3 网络架构

AlexNet 2012-NIPS

VGG家族:VGG-11, VGG-13, VGG-16, VGG-19,分别使用和不使用BN的版本 2014

BN-Inception 2015-ICML

GoogLeNet 2015-CVPR

SqueezeNet-v1.0, SqueezeNet-v1.1 2016

ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152 2016-CVPR

Inception-v3 2016-CVPR, Inception-v4, Inception-ResNet-v2 2016-ICLR

DenseNet-121, DenseNet-169, DenseNet-201, growth rate=32 2017-CVPR

DenseNet-161 growth rate=48 2017-CVPR

ResNeXt-101(32x4d), ResNeXt-101(64x4d) 2017-CVPR

Xception 2017-CVPR

DualPathNet-68, DualPathNet-98, DualPathNet-131 2017-NIPS

SE-ResNet-50, SENet-154, SE-ResNet-101, SE-ResNet-152, SE-ResNeXt-50(32x4d), SE-ResNeXt-101(32x4d) 2018-CVPR

NASNet-A-Large, NASNet-A-Mobile 2018-CVPR

MobileNet-v1 2017, MobileNet-v2 2018-CVPR

ShuffleNet 2018

4 性能指标

NASNet-A-Large的图像大小为331x331

InceptionResNet-v2,Inception-v3,Inception-v4,Xception的图像大小为299x299

其余为224x224

A 准确率

ImageNet-1k验证集上的TOP1和TOP5准确率

B 模型复杂度

需要学习的总参数量

C 内存使用

为网络分配的内存和不同batch下处理需要的内存(batch1,2,4,8,16,32,64)

D 计算复杂度

floating-point operations(FLOPs)

乘法和加法的浮点运算。乘法和加法被记为两次浮点运算,因为许多最近的模型卷积都没有bias。

E 预测时间

5 评测结果

A 准确率 VS 计算复杂度 VS 模型复杂度

准确率VS模型复杂度VS计算复杂度.png

横轴表示计算复杂度,纵轴表示准确率,球的大小表示模型复杂度

NASNet-A-Large有最高的准确率,同时计算复杂度也最高

在低计算复杂度下,SE-ResNeXt-50(32x4d)有最高的准确率同时模型复杂度也不高(2.76M个参数)

计算复杂度和准确率之间没直接关系(SENet-154 VS SE-ResNeXt-101(32x4d))。模型复杂度和准确率之间也没直接关系(VGG-13 VS ResNet-18)

B 准确率 VS 学习能力

准确率VS学习能力.png

网络并未充分利用其所有的参数,所以有许多方法研究怎么压缩模型还能保持原模型的准确率。用TOP1准确率密度来衡量模型利用其参数的效率(TOP1准确率除其所有参数)

这点很明显,专门针对移动端研发的网络参数利用率更高,比如SqueezeNets,ShuffleNet,MobileNets和NASNet-A-Mobile

NASNet-A-Mobile和MobileNet-v2在准确率方面胜出

除此之外,Inception-v4和SE-ResNeXt-101胜出

C 预测时间

预测时间.png

绿色越重性能越好,红色越重性能越差

D 准确率 VS 预测时间

准确率VS预测时间.png

E 内存使用

内存使用.png

当batch为1时,绝大部分模型需要的显存小于1GB

绿色越重需要的内存越少

从这个图可以看出,绝大多数网络batch不超过64显存也没占多少,为啥batch到128就不行了呢

F 内存使用 VS 模型复杂度

两者呈线性关系

G 限制下的最佳网络

有问题查这个表就行了

内存使用:高(<=1.4GB)中(<=1GB)低(<=0.7G)

计算时间:半实时(15FPS),实时(30FPS),超实时(60FPS)

限制下的最佳网络.png

6 结论

把Introduction提到的几个重要发现复述了一遍

六 读后感

根据这篇文章的结论,感觉综合下来用SE-ResNeXt-50或101(32x4d)就行了。另外,对于网络的评估指标有了更进一步的认识。不是所有网络都充分利用了它们的参数,模型的准确率并不直接与其复杂度相关。

七 补充

关于复杂度分析可以看下这两篇

以VGG为例,分析深度网络的计算量和参数量

卷积神经网络的复杂度分析

  相关解决方案