PP-LCNet 论文笔记

PP-LCNet是为提升Intel CPU上的轻量模型性能而设计的,它通过引入H-Swish激活函数、选择性地应用SE模块、使用更大卷积核和增加GAP后1x1卷积层的通道数,实现了在不显著增加延迟的情况下增强特征表示能力。实验表明,这些策略在保持高效推理的同时,提高了模型的准确性。
摘要由CSDN通过智能技术生成

PP-LCNet: A Lightweight CPU Convolutional Neural Network

PP-LCNet Baidu

论文链接: https://arxiv.org/abs/2109.15099

一、 Problem Statement

大部分目前的轻量型网络都是基于ARM结构设备所开发的,很少网络会考虑到在Intel CPU上的运行速度。因此本文提出了三个问题:

  1. 怎么样提升网络,使得可以学习更强的特征表示能力,且不增加迟滞性。
  2. 什么东西可以在CPU上,使得一些轻量化模型的精度可以提升。
  3. 怎么样有效地结合不同的策略来进行基于CPU的轻量化模型的设计。

二、 Direction

基于MKLDNN(intel开发的开源项目,针对cpu上运行神经网络做了一些并行优化),提出一些方法提升精度的同时不增加推理时间。同时本文也提出了一些方法来获得精度与速度更好地平衡。

  • Better activation funtion
  • SE modules at appropriate positions
  • Larger convolution kernels
  • Larger dimension 1x1 conv layer after GAP

三、 Method

先来看一下整体的网络结构:

在这里插入图片描述
在这里插入图片描述

整体网络比较简单,使用了串联结构。同时使用了深度可分离卷积作为Basic block。这个block没有shortcuts连接,因此没有额外的拼接或者相加的操作。这些操作不仅会导致推理速度的下降,而且在小模型上不会提升精度。 从以下策略,对这个BaseNet网络进行优化。

1. 更好的激活函数

MobileNet v3中提出了H-Swish, 本文也借鉴使用H-Swish。

2. 在正确的位置使用SE 模块

SE模块是一个通道注意力模块,也在MobileNet v3中使用了。因此,在Interl CPUs上,SE 模块稍微增加了一点推理时间,因此本文并没有在所有的网络层都使用SE模块。通过实验发现: 在网络的末尾,使用SE模块,会有较好的效果。因此,本文只在网络的末尾使用了SE模块。

3. 使用较大的卷积核

卷积核的大小通常会影响最后的网络性能。作者实验发现,在网络的末尾使用5x5的卷积核替换3x3会有比较好的效果,而且不需要改变所有网络层的卷积核大小。

4. 在GAP层之后,增大1x1卷积的通道数

作者发现,在GAP层之后,网络的维度比较小,直接用于分类层会丢失一些特征组合。因此,使用了1280通道数的1x1卷积层,提升模型的表征能力,同时只提升一点点推理时间。

四、 Conclusion

提出了一些策略,设计了一个网络,提升了轻量型网络在Intel CPUs上的性能。

Reference

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值