Skip to content

Commit

Permalink
[Doc]: update some describe
Browse files Browse the repository at this point in the history
  • Loading branch information
HarleysZhang committed Nov 23, 2022
1 parent bfbd057 commit a2efc5e
Showing 1 changed file with 34 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
- [前言](#前言)
- [一些关键字定义及理解](#一些关键字定义及理解)
- [计算量 FLOPs](#计算量-flops)
- [内存访问代价 MAC](#内存访问代价-mac)
- [GPU 内存带宽](#gpu-内存带宽)
- [Latency and Throughput](#latency-and-throughput)
- [英伟达 GPU 架构](#英伟达-gpu-架构)
- [CNN 架构的理解](#cnn-架构的理解)
- [手动设计高效 CNN 架构建议](#手动设计高效-cnn-架构建议)
- [一些结论:](#一些结论)
- [一些建议](#一些建议)
- [轻量级网络模型部署总结](#轻量级网络模型部署总结)
- [轻量级网络论文解析文章汇总](#轻量级网络论文解析文章汇总)
- [参考资料](#参考资料)

> **文章同步发于 [github 仓库](https://github.com/HarleysZhang/cv_note/blob/master/7-model_compression/%E8%BD%BB%E9%87%8F%E7%BA%A7%E7%BD%91%E7%BB%9C%E8%AE%BA%E6%96%87%E8%A7%A3%E6%9E%90/%E8%BD%BB%E9%87%8F%E7%BA%A7%E6%A8%A1%E5%9E%8B%E8%AE%BE%E8%AE%A1%E4%B8%8E%E9%83%A8%E7%BD%B2%E6%80%BB%E7%BB%93.md)[csdn 博客](http://t.csdn.cn/eZ1jp)**
> 本人水平有限,文章如有问题,欢迎及时指出。如果看完文章有所收获,一定要先点赞后收藏。毕竟,**赠人玫瑰,手有余香**
## 前言

关于如何手动设计轻量级网络的研究,目前还没有广泛通用的准则,只有一些指导思想,和针对不同芯片平台(不同芯片架构)的一些设计总结,建议大家从经典论文中吸取指导思想和建议,然后自己实际做各个硬件平台的部署和模型性能测试。
>
## 一些关键字定义及理解
> `FLOPs``MAC` 的计算方式,请参考我之前写的文章 [神经网络模型复杂度分析](https://github.com/HarleysZhang/cv_note/blob/79740428b6162630eb80ed3d39052cac52f60c32/9-model_deploy/B-%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E6%A8%A1%E5%9E%8B%E5%A4%8D%E6%9D%82%E5%BA%A6%E5%88%86%E6%9E%90.md)
### 计算量 FLOPs

- `FLOPs``floating point operations` 指的是浮点运算次数,理解为**计算量**,可以用来衡量**算法/模型时间的复杂度**
Expand All @@ -10,6 +32,8 @@

`MAC`: `Memory Access Cost` 内存访问代价。指的是输入单个样本(一张图像),模型/卷积层完成**一次前向传播所发生的内存交换总量**,即模型的空间复杂度,单位是 `Byte`

> `FLOPs``MAC` 的计算方式,请参考我之前写的文章 [神经网络模型复杂度分析](https://github.com/HarleysZhang/cv_note/blob/79740428b6162630eb80ed3d39052cac52f60c32/9-model_deploy/B-%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E6%A8%A1%E5%9E%8B%E5%A4%8D%E6%9D%82%E5%BA%A6%E5%88%86%E6%9E%90.md)
### GPU 内存带宽

- `GPU` 的内存带宽决定了它将数据从内存 (`vRAM`) 移动到计算核心的速度,是比 `GPU` 内存速度更具代表性的指标。
Expand Down Expand Up @@ -81,7 +105,8 @@

## 轻量级网络模型部署总结

最近复习了下以前看的 `mobilenet` 系列、`MobileDets``shufflenet` 系列、`cspnet``vovnet``repvgg` 等模型,做了以下总结:
阅读和理解经典的轻量级网络 `mobilenet` 系列、`MobileDets``shufflenet` 系列、`cspnet``vovnet``repvgg` 等论文的基础上,做了以下总结:

1. 低算力设备-手机移动端 `cpu` 硬件,考虑 `mobilenetv1`(深度可分离卷机架构-低 `FLOPs`)、低 `FLOPs` 和 低`MAC``shuffletnetv2``channel_shuffle` 算子在推理框架上可能不支持)
2. 专用 `asic` 硬件设备-`npu` 芯片(地平线 `x3/x4` 等、海思 `3519`、安霸`cv22` 等),目标检测问题考虑 `cspnet` 网络(减少重复梯度信息)、`repvgg`(直连架构-部署简单,网络并行度高有利于发挥 `GPU` 算力,量化后有掉点风险)
3. 英伟达 `gpu` 硬件-`t4` 芯片,考虑 `repvgg` 网络(类 `vgg` 卷积架构-高并行度带来高速度、单路架构省显存/内存)
Expand All @@ -91,20 +116,20 @@
除非芯片厂商做了定制优化来提高深度可分离卷积 `block` 的计算效率,比如地平线机器人 `x3` 芯片对深度可分离卷积 `block` 做了定制优化。

下表是我对 `MobileNetv2``ResNet50` 在一些常见 `NPU` 芯片平台上做的性能测试结果。
下表是 `MobileNetv2``ResNet50` 在一些常见 `NPU` 芯片平台上做的性能测试结果。

![深度可分离卷积和常规卷积模型在不同NPU芯片平台上的性能测试结果](../../data/images/efficient_model/model_perf.png)


以上,均是看了轻量级网络论文总结出来的一些**不同硬件平台部署轻量级模型的经验**,实际结果还需要自己手动运行测试。

## 轻量级网络论文解析文章
## 轻量级网络论文解析文章汇总

- [MobileNetv1论文详解](./轻量级网络论文解析/MobileNetv1论文详解.md)
- [ShuffleNetv2论文详解](./轻量级网络论文解析/ShuffleNetv2论文详解.md)
- [RepVGG论文详解](./轻量级网络论文解析/RepVGG论文详解.md)
- [CSPNet论文详解](./轻量级网络论文解析/CSPNet论文详解.md)
- [VoVNet论文解读](./轻量级网络论文解析/VoVNet论文解读.md)
- [MobileNetv1论文详解](https://github.com/HarleysZhang/cv_note/blob/master/7-model_compression/%E8%BD%BB%E9%87%8F%E7%BA%A7%E7%BD%91%E7%BB%9C%E8%AE%BA%E6%96%87%E8%A7%A3%E6%9E%90/MobileNetv1%E8%AE%BA%E6%96%87%E8%AF%A6%E8%A7%A3.md)
- [ShuffleNetv2论文详解](https://github.com/HarleysZhang/cv_note/blob/master/7-model_compression/%E8%BD%BB%E9%87%8F%E7%BA%A7%E7%BD%91%E7%BB%9C%E8%AE%BA%E6%96%87%E8%A7%A3%E6%9E%90/ShuffleNetv2%E8%AE%BA%E6%96%87%E8%AF%A6%E8%A7%A3.md)
- [RepVGG论文详解](https://github.com/HarleysZhang/cv_note/blob/master/7-model_compression/%E8%BD%BB%E9%87%8F%E7%BA%A7%E7%BD%91%E7%BB%9C%E8%AE%BA%E6%96%87%E8%A7%A3%E6%9E%90/RepVGG%E8%AE%BA%E6%96%87%E8%AF%A6%E8%A7%A3.md)
- [CSPNet论文详解](https://github.com/HarleysZhang/cv_note/blob/master/7-model_compression/%E8%BD%BB%E9%87%8F%E7%BA%A7%E7%BD%91%E7%BB%9C%E8%AE%BA%E6%96%87%E8%A7%A3%E6%9E%90/CSPNet%E8%AE%BA%E6%96%87%E8%AF%A6%E8%A7%A3.md)
- [VoVNet论文解读](https://github.com/HarleysZhang/cv_note/blob/master/7-model_compression/%E8%BD%BB%E9%87%8F%E7%BA%A7%E7%BD%91%E7%BB%9C%E8%AE%BA%E6%96%87%E8%A7%A3%E6%9E%90/VoVNet%E8%AE%BA%E6%96%87%E8%A7%A3%E8%AF%BB.md)

### 参考资料

Expand Down

0 comments on commit a2efc5e

Please sign in to comment.