当前位置:网站首页>MobileNet ShuffleNet & yolov5替换backbone
MobileNet ShuffleNet & yolov5替换backbone
2022-08-02 14:02:00 【weixin_50862344】
以下内容参考参考
MobileNet V1
亮点:
(1)使用可分离卷积核大幅减少参数量
(2)增加了超参数a,b
a:卷积核个数的倍率
b:分辨率高低
MobileNet V2
亮点:
(1)使用倒结构残差
残差结构:两边粗,中间细
倒残差结构:两边细,中间粗
MobileNet V3
亮点:
(1)更新block
①新增SE模块
②更换激活函数
(2)重新设计耗时层结构
①减少第一个卷积层的卷积核个数
②精简了last stage:删除了对性能没有明显提升的部分
(3)重新设计激活函数
swishx复杂,替换成效果差不多的h-switch
ShuffleNetV1
亮点:
①使用组卷积大幅减少参数量
②在组卷积之后使用Shuffle层有利于不同组之间信息共享
ShuffleNetV2
笔记来自这里!
ShuffleNetV2直接通过控制不同的环境来直接测试网络在设备上运行速度的快慢,而不是通过FLOPs来判断。
(1)四条原则
1.当卷积层的输入特征矩阵与输出特征矩阵channel相等时MAC最小(保持FLOPs不变时)
- MAC:内存访问成本
2.当GConv的groups增大时(保持FLOPs不变时),MAC也会增大
GConv:组卷积
组卷积的介绍在这
GroupConv将卷积Filter分为G组,输入特征映射通道也分为G组,每组卷积Filter处理对应的一组输入特征映射通道。由于每一组卷积Filter只应用于相应的输入通道组,卷积的计算代价显著降低。
同时也会带来缺点:
通道信息并不在不同的组之间共享,即不同组的输出Feature map通道只从对应组的输入通道接收信息。这阻碍了不同组通道之间的信息流动,降低了GroupConv的特征提取能力。
一方面,它允许在一个固定的FLOPs下使用更多的channels,并增加网络容量(从而提高准确性)。然而,另一方面,增加的通道数量导致更多的MAC
3.网络设计的碎片化程度越高,速度越慢
4.Element-wise操作带来的影响是不可忽视的
实战
实际上对于一个模块的更换,无非就是三步:
①定义模块
②在yolo.py注册模块
注册换句话说不一定会使用到
③在yaml文件中更换相应的层结构
Shufflenetv2
Mobilenetv3
边栏推荐
猜你喜欢
随机推荐
Sentinel源码(五)FlowSlot以及限流控制器源码分析
文件加密软件有哪些?保障你的文件安全
泡利不相容原理适用的空间范围(系统)是多大?
els 长条碰撞变形判断
Detailed explanation of ORACLE expdp/impdp
Cloin 控制台乱码
【Tensorflow】AttributeError: module 'keras.backend' has no attribute 'tf'
玉溪卷烟厂通过正确选择时序数据库 轻松应对超万亿行数据
ZABBIX配置邮件报警和微信报警
drf源码分析与全局捕获异常
Shell脚本完成pxe装机配置
rhce第三天作业
网络安全第一次作业
Sentinel源码(六)ParamFlowSlot热点参数限流
动态刷新日志级别
史上最全!47个“数字化转型”常见术语合集,看完秒懂~
【Tensorflow】AttributeError: module ‘keras.backend‘ has no attribute ‘tf‘
Kunpeng devkit & boostkit
jwt(json web token)
线代:已知一个特征向量快速求另外两个与之正交的特征向量