meituan / YOLOv6

YOLOv6: a single-stage object detection framework dedicated to industrial applications.
GNU General Public License v3.0
5.71k stars 1.03k forks source link

在预训练过程中是否有必要进行自蒸馏训练/// Is it necessary to conduct self distillation training during the pre training process #871

Open LiChangYu1997 opened 1 year ago

LiChangYu1997 commented 1 year ago

Before Asking

Search before asking

Question

您好,我希望在实验中同时使用迁移学习与自蒸馏训练来提升模型性能。具体来讲,我希望首先在足够大的数据集A上对模型进行预训练,然后通过迁移学习在较小的数据集B上进行微调,并在这个过程中使用自蒸馏训练提升模型性能。根据“tutorials for training your custom data”文件描述,我了解到在数据集B上微调过程中进行自蒸馏训练是必要的,但是不知道在数据集A上进行预训练过程中是否也有进行自蒸馏训练的必要,毕竟在预训练阶段进行自蒸馏训练会消耗大量时间。希望根据您在实验中的经验给予我一些建议,不胜感激。

Hello, I hope to use both Transfer learning and self distillation training to improve model performance in the experiment. Specifically, I hope to pre train the model on a sufficiently large dataset A first, then fine tune the model on a smaller dataset B through Transfer learning, and use self distillation training in this process to improve the model performance. According to "[tutorials for training your custom data]( https://github.com/meituan/YOLOv6/blob/main/docs/Train_custom_data.md )”File description: I understand that self distillation training is necessary during the fine-tuning process on dataset B, but I am not sure if it is also necessary to perform self distillation training during the pre training process on dataset A, as it will consume a lot of time during the pre training stage. I would appreciate it if you could provide me with some suggestions based on your experience in the experiment.

Additional

No response

mtjhl commented 1 year ago

这种情况下,不太确定预训练模型的mAP 是否会严重影响微调的模型的性能。如果微调时,数据比较少,可能预训练精度影响大一些;如果微调时数据比较多,可能就没那么影响了。您可以做个对比看看。