关于多任务学习MTL的实现步骤记录
拿任务来讲解:
假设我目前已经有了一个目标检测功能,检测物体a,现在我想判断这个a是不是真实场景下的,需要对整图再加个判断,即二分类。这样的需求其实就是典型的多任务学习,即检测+分类
拿到这样的任务,目前经过实际操作已知如下有效的训练方法。
- 首先,训练数据要保证类别均衡,包括两个方面,检测就不用说了,最好是各个类别均衡,其次是分类方面,检测类别的实拍和非实拍也要均衡
- 然后数据预处理,假设batch是32,那么我们需要从分类数据中取出16张,从检测数据中取出16张,然后用各自的预处理方式进行预处理,此处的预处理指的是样本增强,最后组合成batch-32,送到模型中
- 计算损失,此时需要在backbone上加入一个分类头,以yolov5为例,这个分类头可以加到三个输出中的任何一个当中都可以,一般情况下加到最后一个输出上
- 在损失计算上,根据分类和检测的图片位置,分别计算相应的分类损失和检测损失,然后相加后反向传播,至此,多任务的整体训练流程就结束
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/16734093.html,如有侵权联系删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律