飞桨AI创造营2期-t6-模型优化
(Datawhale34期组队学习)
文章目录
- 飞桨AI创造营2期-t6-模型优化
- 1知识点
- 2具体内容
- 2.1模型结构优化
- 2.1.1优化之路
- 2.1.2senet-sknet-resnest
- 2.2模型性能优化
- 2.2.1量化
- 2.2.2剪枝
- 2.2.3知识蒸馏
- 2.3模型训练优化
- 2.3.1数据处理
- 2.3.2超参数
- 2.3.3Loss
- 2.4模型自动搜索
- 2.4.1搜空间
- 2.4.2搜策略
- 2.5工具
- 3参考
1知识点
- 模型结构优化
- 模型性能优化
- 模型训练优化
- 模型自动搜索
2具体内容
cv例子:
- 场景重构 scenereconstruction
- 对象检测
- 事件检测
- 视频追踪
- 对象识别
- 三维姿态估计
- 运动估计
- 三维场景建模
- 图形修复
- 。。。
2.1模型结构优化
2.1.1优化之路
- 基于深度和参数量 lenet5-vgg
- 基于宽带和多尺度 Inception多尺度设计和特征融合
- 基于残差设计 Resnet设计skip connection,讲卷积层结果和输入层结合,增加信息在各层流动,缓解梯度消失
- 基于不规则卷积 感受野调节,可变形卷积
- 基于注意力机制 专注重点信息,空间域、通道域、层域、混合域
- 基于Transformer 全局信息,处理长距离依赖关系,避免cnn归纳偏好,复杂度高
2.1.2senet-sknet-resnest
2.2模型性能优化
固定精度,改模型:
- 量化
- 剪枝
固定模型,教师网络指导学生网络
- 知识蒸馏
2.2.1量化
1.基于范围的线性量化:
- 非饱和方式:浮点数绝对值最大值映射到整数
- 饱和方式:按模型结构,计算浮点数阈值,映射到整数
- 放射:浮点最大最小映射
受离群点,float参数分布不均,造成量化损失增加
2.PACT量化
- 裁剪激活值范围
- PACT代替Relu
- 改进PACT,大于0,小于0的都要限制,得到更好的待量化范围
2.2.2剪枝
1.卷积重要性分析
- l1
- L2
- 中位数
2.FPGM剪枝
- 中位数
- 两个循环:epoch;遍历网络每一层,算中位数,接近的剪枝(卷积核参数置0)
- 去为0卷积核
2.2.3知识蒸馏
1.迁移学习
- 教师网络(精度高)
- 学生网络(小网络)
2.种类
- Response based distillation - ssld
- Feature based distillation - pp-ocrv2
- Relation based distillation -RKD
3.ex
PaddleClass:ppcls/configs/ImageNet/Distillation/
2.3模型训练优化
- 数据处理
- 模型结构
- 超参数
- loss
- 后处理
2.3.1数据处理
- 随机裁剪、随机变换宽高比
- 高斯模糊、中值模糊、马赛克
- 亮度变化、对比度变化、色彩变化
- 随机噪声、随机遮挡、复制粘贴
- 旋转、平移、翻转、畸变
- 大尺度训练,多尺度训练
2.3.2超参数
- 学习率
- 规范化参数
- 批大小:适配算力;论文
- 迭代轮数
2.3.3Loss
- 类别loss
- 交叉熵
- Focal loss
- Center loss
- 位置
- L1
- L2
- Smoth L1
- IoU loss
- GIoU loss
- 语义分割
- DICE loss
- lovasz loss
2.4模型自动搜索
搜索空间(结构)-》策略(算法,参数)-》评估(评估模型)
2.4.1搜空间
micro-search或单元搜索
- MNasNet,分解层次搜索空间,机器+人工
- 一个网分多个块
- 每块分多个层
- 每层单独结构搜索
- 微搜索
2.4.2搜策略
- Once-for-all
- SANAS
- RLNAS
- DARTS
ex:
- PaddleSlim,SANAS实现搜索
- 依赖库
- 初始化SANAS搜索实例
- 构建网络
- 定义training
- 定义输入数据函数
- 定义评估函数
- 完整实例
2.5工具
3参考
https://aistudio.baidu.com/aistudio/education/lessonvideo/2260904