1. 四条轻量化网络设计准则
如上图所示,分别在GPU和ARM设备上,测试ShuffleNet V1和MobileNet V2在各种操作上的耗时占比,其中:
- Elementwise:逐元素操作,如RELU函数,残差网络的逐元素相加(shortcut)。
- Data:数据操作,如输入,输出。
- Conv:卷积操作。
- Shuffe:通道重排。
由这个实验可以得出以下结论:
- 乘-加浮点运算次数FLOPs仅反映卷积层,仅为间接指标。
- 不同硬件上的测试结果不同。
- 数据读写的内存MAC占用影响很大。
- Element-wise逐元素操作带来的开销不可忽略。
由此引出轻量化网络的四条设计准则:
- 准则一:输入输出通道数相同时,内存访问量MAC最小。
- 准则二:分组数过大的分组卷积会增加MAC。
- 准则三:碎片化操作对并行加速不友好。
- 准则四:逐元素(Element-wise)操作带来的内存和耗时不可忽略。
注:准则一可以理解为卷积核数量最好与输入的通道数一致;碎片操作指多通路,多分支等,如inception里的分支结构;逐元素操作,如RELU,残差网络的shortcut。
2. 原则详解
2.1. 准则一:输入输出通道数相同时,内存访问量MAC最小
2.1.1. 如何计算FLOPs和MAC
2.1.2. 证明,均值不等式
2.1.3. 实验
2.2. 准则二:分组数过大的分组卷积会增加MAC
2.3. 准则三:碎片化操作对并行加速不友好
2.4. 准则四:逐元素(Element-wise)操作带来的内存和耗时不可忽略
3. 基本模块设计
4. 参考
(完)
标签:卷积,准则,MAC,shuffleNet,轻量化,V2,内存,操作,2.1 From: https://www.cnblogs.com/harrymore/p/16802223.html