不同CNN/DNN模型之间的比较:Benchmark Analysis of Representative Deep Neural Network Architectures

Benchmark Analysis of Representative Deep Neural Network Architectures

代表性深度神经网络架构的基准分析

发表时间:[Submitted on 1 Oct 2018 (v1), last revised 19 Oct 2018 (this version, v2)]

发表期刊/会议:Computer Vision and Pattern Recognition

论文地址:https://arxiv.org/abs/1810.00736

代码地址:https://github.com/CeLuigi/models-comparison.pytorch

关键词:Deep neural networks, Convolutional neural networks, Image recognition.


0 摘要

本文对目前图像识别领域提出的大多数DNNs(deep neural networks)进入了深入分析,从多个指标进行对比。

指标:

识别精度,模型复杂度,计算复杂度,内存使用,推理时间;

这项研究有助于研究人员全面了解目前已经探索了哪些解决方案,以及未来哪些研究方向值得探索;从业者可以选择更适合实际部署和应用的资源限制的DNN架构。


1 简介

重要发现(=结论):

  • 精度不会随着操作的数量的增加而增加,见图1;
  • 模型复杂度和精度直接不存在线性关系,见图1;
  • 期望的吞吐量为精度设置了上限,见图3;
  • 不是所有的DNN模型都以相同的效率使用参数,见图2;
  • 几乎所有模型都能在高端GPU上实现超级实时性能,而只有一些模型更适用于嵌入式设备,见表1;
  • 即使是模型复杂度非常低的DNN, GPU内存占用的最小值为0.6GB左右,见表2;
  • 模型复杂度可用于可靠地估计总内存利用率,见图4;


2 BENCHMARKING

实验设备:

  • workstation
    • Intel Core I7-7700 CPU @ 3.60GHZ;
    • 16GB DDR4 RAM 2400 MHz;
    • NVIDIA Titan X Pascal GPU with 3840 CUDA cores;
    • 系统:Ubuntu 16.04;
  • embedded system
    • NVIDIA Jetson TX1 board with 64-bit ARM®A57 CPU @ 2GHz;
    • 4GB LPDDR4 1600MHz;
    • NVIDIA Maxwell GPU with 256 CUDA cores;
    • JetPack-2.3 SDK;


3 比较模型


4 性能指标

准确率:ImageNet-1k图像分类任务验证集的Top-1和Top-5精度;

模型复杂度:可学习参数的总数;

内存消耗:不同batch size下的情况,batch size = 1,2,4,8,16,32,64;

计算复杂度:floating-point operations (FLOPs);

推理时间:以毫秒来衡量推理时间;


5 结果

A:准确率vs计算复杂度vs模型复杂度

图1:Top-1和Top-5精度与计算复杂度的关系;(a):Top-1;(b):Top-5;球的大小对应模型的复杂度;

横轴:计算复杂度,越靠左越好;
纵轴:精度,越靠上越好;

  • NASNet-A-Large精度最高,也是计算复杂度最高的DNN(右上角);

  • SE-ResNeXt50 (32x4d)复杂度低,精度高(左上角);

  • 计算复杂度和识别精度之间似乎没有关系,例如SENet-154需要大约3倍于SE-ResNeXt-101(32x4d)所需的操作数量,而具有几乎相同的精度;

  • 模型复杂度和识别精度之间似乎也没有关系,VGG-13的模型复杂度(球的大小)比ResNet-18高得多,而精度几乎相同;


B:准确率vs学习能力

图2:Top-1 accuracy density;(a):Top-1 accuracy vs. Top-1 accuracy density;(b):精度密度衡量每个模型使用其参数的效率;

定义每个模型使用参数的效率:
精度密度accuracy density = Top-1 accuracy / params.

(a)
横轴:accuracy density,精度密度,越高越好;
纵轴:不同模型;

(b)
横轴:精度密度,越大越好
纵轴:Top-1 acc,越大越好;

由图2(a)可知,最有效地使用参数地模型是SqueezeNets、ShuffleNet、MobileNets和NASNet-A-Mobile;

由图2(b)可知,在最有效的模型中,NASNet-A-Mobile和MobileNet-v2是两个提供了更高的Top1精度的模型(右上角最好);


C:推理时间

表1:推理时间与batch size大小的关系;左:workstation;右:embedded system;数据丢失是由于缺乏处理较大批处理所需的足够系统内存。

(左)由表中可以看出,当batch size为1的时候,所有的DNN都在workstation上实现超级实时性能,只有SENet-154除外;

(右)由表中可以看出,当batch size为1的时候,只有少数DNN能够在嵌入式系统上实现超级实时性能,包括:SqueezeNets, MobileNets, ResNet-18, GoogLeNet和AlexNet;


D:准确率与推理时间

图3:Top-1 acc与每秒处理的图像数量(批处理大小为1);左:workstation;右:embedded system;

横轴:每秒推理的图像数量 Images per second FPS(取log之后,所以图像是曲线),越大越好;
纵轴:Top-1 acc,越大越好;

图左:
如果目标吞吐量超过250FPS,精度最高的模型是ResNet-34,Top-1 acc为73.27%;

超过125FPS,精度最高的是Xception,Top-1 acc为78.79%;

超过62.5FPS,精度最高的是SE-ResNeXt-50 (32x4d),Top-1 acc为79.11%;

超过30FPS,精度最高的是NASNet-A-Large,Top-1 acc为82.50%;

如果要选实时性能最好的:MobileNet-v2,Top-1 acc为71.81%;

如果要选Top-1 acc > 75%的:ResNet-50;

如果要选Top-1 acc > 80%的:SE-ResNeXt-101 (32x4d);


E:内存使用情况

表2: Titan Xp上不同batch size的内存使用情况

batch size = 1时,除了NASNet-ALarge、SE-ResNets、SE-ResNeXTs、SENet-154、VGGs和Xception之外,大多数模型需要的内存小于1GB。


F:内存使用vs模型复杂性

图4:Titan Xp上batch size=1的模型参数的初始静态分配(即模型复杂性)和总内存利用率的图。

横轴:参数量(模型复杂度);
纵轴:总内存利用率;

从图中可以看出,基本是线性关系,并且两条斜率近似相同(即1.10和1.15);
截距不同(分别为910和639);

这意味着模型的复杂性可以用来可靠地估计总的内存利用率。

可以观察到具有最小复杂度的模型(即SqueezeNet-v1.0和SqueezeNet-v1.1均为5MB)的内存占用为943MB和921MB,而具有稍高复杂度的模型(即MobileNetv1和MobileNet-v2分别为17MB和14MB)的内存占用要小得多,分别为650MB和648MB。


G:给定约束条件下的最佳DNN

给定如下约束:

  • 内存:
    • high(≤1.4GB);
    • medium(≤1.0GB);
    • low(≤0.7GB);
  • 计算时间:
    • half real-time (@15FPS);
    • real-time (@30FPS);
    • super real-time (@60FPS);
表3:给定特定硬件资源作为计算约束时,在识别精度方面的最佳DNN架构

Titan Xp,以low(≤0.7GB)内存为约束条件,DPN-68,不受计算时间的影响,识别准确率最高可达75.95%;

Titan Xp,以high(≤1.4GB)内存为约束条件,SE-ResNeXt-50 (32x4d),精度最高为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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值