深度学习模型训练流程思考
【摘要】 训练目标是什么,分类、检测、分割。。。走读数据,寻找数据特点与规律,开始思考网络、Loss数据增强的结构和方式寻找可被使用的公开数据集如需自行标注数据,应提取设计好数据标注要求与标准(异常情况的考虑),尽可能通过算法实现半自动化标注,设计好验收标准确认并设计好效果验收指标,可能包括precision、recall、Fssim)F1、AP、mAP、ssim等确认性能验收指标,可能包括,GPU(...
- 训练目标是什么,分类、检测、分割,设计输入输出结构体
- 走读数据,寻找数据特点与规律,开始思考网络、Loss数据增强的结构和方式
- 寻找可被使用的公开数据集
- 如需自行标注数据,应提前设计好数据标注要求与标准(异常情况的考虑),尽可能通过算法实现半自动化标注,设计好验收标准
- 设计划分训练集(K fold)和验证集
- 确认并设计好效果验收指标,可能包括precision、recall、F1、AP、mAP、ssim、IOU等
- 确认性能验收指标,可能包括,GPU(NPU)显存、GPU(NPU)推理速度、内存、CPU占比、FLOPs等
- 根据6,7中的要求设计网络结构与Loss组合,并提前为蒸馏预留好接口
- 代码实现6,7,8中的设计
- 使用超参优化工具(NNI)寻找最优超参组合
- 模型初步训练
- 改进:根据初步训练的效果指标判断是数据集问题还是模型结构或深度问题
- 数据集问题,想办法进一步清洗补充数据集
- 模型结构问题,尝试更换或者NNI搜索更优模型;模型深度问题,尝试增加backbone的卷积通道层数或者复制增加layers
- 如需进一步提升,根据上一步中的改进设计一个更大的模型
- 若大模型效果有显著提升,蒸馏训练标准(小)模型
- 如果对性能还有进一步要求再进行模型剪枝、压缩、量化
- 等待训练Loss收敛,输出模型性能与效果验收报告
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)