本发明涉及深度学习领域,具体讲是一种新增任务的多任务模型训练方法、装置和存储介质。
背景技术:
1、在实际工况下,已在一个固定场景部署模型实现ai任务(包括但不限目标检测、分割、分类、超分等等),如果要在该场景下添加ai推理任务,相同任务类型不同target(目标检测(人、车)+目标检测(摩托、电瓶车))或是不同任务类型(分割+目标检测),则需要重新训练一个新的模型,在部署端(服务器或边缘设备)进行多线程部署做异步推理,需要对context(上下文管理器)、stream(流)、device(设备)进行管理,还需要做流同步,模型一多部署就容易造成内存管理慌乱,更重要的是会造成计算资源的浪费,如在一些计算资源较匮乏的边缘设备项目落地门槛就会更高。
技术实现思路
1、因此,为了解决上述不足,本发明在此提供一种新增任务的多任务模型训练方法、装置和存储介质,对于原场景添加ai任务,极大的减少了模型运行时候的算力要求和算力消耗、不需要做多线程的模型管理多任务也按照一个模型进行部署、对模型部署更友好。
2、一方面,本发明提供了一种新增任务的多任务模型训练方法,包括:
3、通过新任务的数据集及原模型对新模型进行训练,所述原模型和新模型至少包括backbone(骨干网络)和head(头部网络);
4、将训练好的新模型除去backbone(骨干网络)的节点及其权重concat(拼接)到老模型的backbone(骨干网络)上;对老模型的backbone(骨干网络)进其他分支节点的权重冻结,用新模型和新任务的数据集对冻结后的老模型进行soft-target distillation(软靶蒸馏);
5、在工况情况下依据模型输出索引进行取值操作;
6、其中通过原模型对新模型进行训练的方法是:
7、用原模型的骨干网络的输出对新模型骨干网络输出的特征图像进行特征图蒸馏。
8、可选的,所述原模型和新模型还包括neck(颈部网络),其中通过原模型对新模型进行训练的方法是:
9、用原模型backbone(骨干网络)或backbone(骨干网络)+neck(颈部网络)的输出对新模型backbone(骨干网络)或backbone(骨干网络)+neck(颈部网络)输出的feature map(特征图像)进行feature distillation(特征图蒸馏)。
10、可选的,所述原模型和新模型还包括neck(颈部网络),其中通过原模型对新模型进行训练的方法是:
11、用原模型backbone(骨干网络)或backbone(骨干网络)+neck(颈部网络)对新模型backbone(骨干网络)或backbone(骨干网络)+neck(颈部网络)进行训练几轮然后将新模型的backbone(骨干网络)或backbone(骨干网络)+neck权重冻结后使用新任务的数据集对新模型训练。
12、可选的,对于新模型训练用feature distillation(特征图蒸馏)计算的loss以及新任务的数据集的target(目标值)算出来的loss(损失函数)反向传播对于backbone(骨干网络)的梯度占比。
13、可选的,feature distillation(特征图蒸馏)的方式包括但不限于mgd、cwd、amd。
14、可选的,concat(拼接)是包括但不限于onnx、pytorch、tensorflow、caffe模型。
15、所述新增任务的多任务模型训练方法,还包括:复制一个新模型将其他不用的分支上面的节点删除。
16、第二方面,本发明提供了新增任务的多任务模型训练装置,包括
17、训练模块,用于通过新任务的数据集及原模型对新模型进行训练,所述原模型和新模型至少包括backbone(骨干网络)和head(头部网络);
18、蒸馏模块,用于将训练好的新模型除去backbone(骨干网络)的节点及其权重concat(拼接)到老模型的backbone(骨干网络)上;对老模型的backbone(骨干网络)进其他分支节点的权重冻结,用新模型和新任务的数据集对冻结后的老模型进行soft-targetdistillation(软靶蒸馏);以及
19、赋值模块,用于在工况情况下依据模型输出索引进行取值操作。
20、第三方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现所述的新增任务的多任务模型训练方法。
21、本发明具有如下优点:
22、本发明对于原场景添加ai任务,极大的减少了模型运行时候的算力要求和算力消耗、不需要做多线程的模型管理多任务也按照一个模型进行部署、对模型部署更友好。
1.新增任务的多任务模型训练方法,其特征在于,包括
2.根据权利要求1所述新增任务的多任务模型训练方法,其特征在于,所述原模型和新模型还包括颈部网络,其中通过原模型对新模型进行训练的方法是:
3.根据权利要求1所述新增任务的多任务模型训练方法,其特征在于,所述原模型和新模型还包括颈部网络,其中通过原模型对新模型进行训练的方法是:
4.根据权利要求2所述新增任务的多任务模型训练方法,其特征在于,对于新模型训练用特征图蒸馏计算的损失函数以及新任务的数据集的目标值算出来的损失函数反向传播对于骨干网络的梯度占比。
5.根据权利要求4所述新增任务的多任务模型训练方法,其特征在于,特征图蒸馏的方式是mgd、或cwd、或amd。
6.根据权利要求1所述新增任务的多任务模型训练方法,其特征在于,拼接是onnx、或pytorch、或tensorflow、或caffe模型。
7.根据权利要求1所述新增任务的多任务模型训练方法,其特征在于,还包括:
8.新增任务的多任务模型训练装置,其特征在于:包括
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-7任一项所述的新增任务的多任务模型训练方法。