论文笔记(1)——Benchmark Analysis of Representative Deep Neural Network Architectures

论文连接

链接: https://arxiv.org/abs/1810.00736.

文章解读

题目:Benchmark Analysis of Representative Deep Neural Network Architectures
  (代表性深度神经网络架构的基准分析)

  文章用目前常见的40多个网络(在下面总结)分别在 NVIDIA Titan X Pascal(可以理解为PC端的显卡上)、NVIDIA Jetson TX1板上用ImageNet-1k的数据集都跑了一遍然后分别都统计了一些他们多个性能的指标(如:准确率、模型复杂度、内存占用、计算复杂度、推理时间),并且分析了这些性能指标之间的一些关系:

  1. 识别精度不会随着操作次数的增加而增加;
  2. 模型复杂性和准确性之间不存在线性关系;
  3. 预期吞吐量为可达到的精度设定了上限;
  4. 并非所有DNN模型都以相同的效率水平使用其参数;
  5. 几乎所有型号都能在高端GPU上实现超实时性能,而只有部分型号能在嵌入式系统上保证超实时性能;
  6. 即使是模型复杂度非常低的DNN,其最小GPU内存占用也约为0.6GB。

  简单说一下论文的环境配置:
   软件:Pytorch、cuDNN5.1、CUDA9.0
   硬件

工作站(workstation)配置Intel Core I7-7700 CPU@3.60GHZ,16GB DDR4 RAM 2400 MHz,NVIDIA Titan X Pascal GPU(Ubuntu 16.04)
Jetson 板配置NVIDIA Jetson TX1板,具有64位ARM A57 CPU@2GHz,4GB LPDDR4 1600MHz, NVIDIA Maxwell GPU和256个CUDA内核

  作者在文章中也特地说明了为什么要做PC端和Jetson端的比较:

“使用PC端和Jetson端进行比较,可以突出显示计算资源对所采用的DNN模型的重要性,特别是在内存使用和推理时间方面”

  其中作者对一下网络进行了实验:
   普通模型AlxNET;VGG体系结构系列 (VGG-11,−13, −16及−19)不使用和使用批量标准化(BN)层; BN-InceptionGoogLeNetSqueezeNet-v1.0−v1.1ResNet-18,−34, −50, −101, 以及 −152 ; Inception-v3Inception-v4Inception-ResNet-v2DenseNet-121,−169,以及−201(增长率为32),DenseNet-161(增长率为48);ResNeXt-101(32×4d)ResNeXt-101(64×4d),其中括号内的数字分别表示每个卷积层的组数和瓶颈宽度;
   例外情况DualPathNet-68,−98−131; SE-ResNet-50、SENet 154、SE-ResNet-101、SE-ResNet-152、SE-ResNeXt-50(32×4d)、SE-ResNeXt 101(32×4d);NASNet-A-LargeNASNet-A-Mobile,其架构是 directly learned的。
   面向效率的模型MauneNET-V1、MauneNET-V2和ShuffleNet

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

在这里插入图片描述
  每个球的大小对应于模型复杂度,可以理解为模型的大小
  横坐标计算复杂度(可以理解为对于模型的计算成本)
  纵坐标模型的Top-1或Top-5准确率
  能看出我们较为熟悉的VGG系列是模型复杂度最大的了,但是与它同等准确度的ResNet-18计算量缺比VGG-13小得多。然后就是ENET-145和E-ResNeXt-101这两个模型的准确度差不多但是其计算复杂度明显是两个等级。由此作者得出了他的一部分结论:
  1、识别精度不会随着操作次数的增加而增加;
  2、模型复杂性和准确性之间不存在线性关系;


⚪准确率VS学习能力

  文章原话为:“It is known that DNNs are inefficient in the use of their full learning power (measured as the number of parameters with respect to the degrees of freedom).”
  翻译:“众所周知,DNN在充分利用其学习能力方面效率低下(以自由度相关参数的数量衡量)。”
  作者的大概意思就是在一个网络模型中,每个参数对模型的推算能力的贡献程度程度都不一样,尤其是在深度神经网络模型中有些参数占用了一定的计算量却对模型的推算能力并没有多大的贡献。所以作者都衡量了这些网络模型中参数对模型推算的贡献能力(we want here to measure how efficiently each model uses its parameters.

在这里插入图片描述
  图a表示的是单位参数量对Top-1准确率的贡献程度(Top-1 accuracy density)。可以看出最有效地使用其参数的模型是SqueezeNets、ShuffleNet、MobileNet和NASNet-a-Mobile。
  图b表示的是单位参数量对Top-1准确率的贡献程度 VS Top-1准确率(Top-1 accuracy density VS Top-1 accuracy )的关系图。通过这种方式可以很容易地看出,在最有效的模型中,NASNet-A-Mobile和MobileNet-v2提供了更高的Top-1精确度。在具有最高Top-1精确度(即高于80%)的模型中,我们可以观察到更有效地使用其参数的模型是Inception-v4和SE-ResNeXt-101(32×4d)

⚪推断时间

在这里插入图片描述
  表a和表b分别代表模型在PC端(显卡上)和Jetson板子上,不同batch size(1、2、4、8、16、32和64)中推断10次以上的平均时间。

  从表中可以看出,当考虑批量大小为1时,所有DNN模型都能够在PC端上实现比较好的实时性能,但SENet-154除外。相反,在Jetson上,当考虑batch size为1时,只有少数型号能够实现实时性能,即:SqueezeNets、MobileNets、ResNet-18、GoogLeNet和AlexNet

⚪准确率 VS 推断时间

在这里插入图片描述
  作者也将推理速度与推理准确度(Top-1)做了对比。
  图a和图b也是分别代表模型在PC端(显卡上)和Jetson板子上,batch size为1时的情况。图中作者还用一根细线表明了这些模型的线性上限,我们能够发现两根线基本上是相同的,

  通过图a,我们能发现在PC端,

  1. 如果目标吞吐量超过250 FPS,则提供最高精度的模型是ResNet-34,最高精度为73.27%;
  2. 目标速度超过125 FPS时,精度最高的模型是Exception,最高精度为78.79%;
  3. 目标速度超过62.5 FPS的情况下,精度最高的模型是SE-ResNeXt-50(32×4d),最高精度为79.11%;
  4. 目标速度超过30 FPS时,精度最高的模型是NASNet-a-Large,最高精度为82.50%。

  该分析表明,即使是之前我们统计的最先进的最精确的模型,即NASNet-A-Large,也能够在PC端上提供超实时性能(30.96 FPS)。

  而当我们部署在Jetson 嵌入式板子上时,可以看出:

  1. 如果一个目标是较好实时性能,则给出最高精度的模型是MobileNet-v2,最高精度为71.81%;
  2. 如果一个目标的Top-1精度大于75%,则通过ResNet-50(18,83FPS)实现最大吞吐量;
  3. 针对精度超过80%的Top-1,SE-ResNeXt-101(32×4d)(7,16 FPS)可实现最大吞吐量;以最好的顶尖精度为目标,可实现的吞吐量为2,29 FPS。

⚪内存使用率

在这里插入图片描述
  作者也分析了PC端(Titan Xp)上考虑不同batch size的所有DNN模型的内存消耗。从实验统计的内存占用情况可以看出:当 batch size >1 时,除NASNet a-Large、SE-Resnet、SE-ResNeXTs、SENet-154、VGGs和exception外,大多数型号需要的内存小于1GB。然而,batch size <1 ,它们都不需要超过1.5GB的内存。


⚪内存使用率 VS 模型复杂性

在这里插入图片描述

  图中作者分析了PC端(Titan Xp)上batch size =1时,模型参数的初始静态分配(即模型复杂性)与总内存利用率之间的关系。可以看出这种关系是线性的,遵循两条不同的线,斜率大致相同(即1.10和1.15),截距不同(即分别为910和639)。

  这意味着可以使用模型复杂性可靠地估计总内存利用率。从图中我们可以观察到,例如VGG,SE-Resnet和SqueezeNets位于具有较高截距的线上,而Resnet、DualPathNet、DenseNets、Inception-net和MobileNets位于具有较低截距的线上。

  特别是,我们可以观察到,复杂度最低的模型(即具有5MB的SqueezeNet-v1.0和SqueezeNet-v1.1)的内存占用量分别为943MB和921MB,而复杂度稍高的模型(即分别具有17MB和14MB的MobileNet-v1和MobileNet-V2)的内存占用量则小得多,分别等于650MB和648MB。


⚪给定约束条件下的最佳DNN

在这里插入图片描述
  这表显示了在特定硬件资源作为计算约束条件时,最佳DNN体系结构的识别精度。
  此分析针对Titan Xp和Jetson TX1进行。我们定义了以下约束条件:

    -内存使用率:高(≤1.4GB),中等(≤1.0GB)和低(≤0.7GB);

    -计算时间:半实时(@15FPS)、实时(@30FPS)、超实时(@60FPS);

  Titan Xp以低内存使用率为约束条件,通过使用DPN-68网络(与计算时间无关),可实现最多75.95%的识别准确率。

  Titan Xp拥有更多资源,例如中等和高内存使用率,通过使用具有超实时吞吐量的SE-ResNeXt-50(32×4d),识别准确率最高可达79.11%。

  Jetson TX1不需要内存使用,通过使用MobileNet-v1,其识别准确率最高可达69.52%,从而保证了超实时吞吐量。要使Jetson上运行的DNN在识别精度方面与Titan Xp上运行的最佳DNN相当,至少需要1GB的内存大小。在这种情况下,性能最好的是ResNet-50,能够保证半实时吞吐量,识别准确率为76.01%。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fire丶Chicken

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值