xiao-hua-sheng / YOLOX-Distill

yolox 基于目标知识蒸馏
Apache License 2.0
5 stars 1 forks source link

蒸馏损失实现时类别能否改用变量? #2

Open LiangYongAI opened 2 years ago

LiangYongAI commented 2 years ago

我看yolo_head.py里实现蒸馏损失时类别数固定成5了,能否用变量替换?方便类别数变化。

LiangYongAI commented 2 years ago

我现在用coco数据集在验证,把yolo_head.py里面的类别数全部由5改成80还是没能跑通

xiao-hua-sheng commented 2 years ago

错误是什么了?蒸馏损失里的类别确实被固定了 你数据的路径设置对了吗?exps/example/ 下面的学生模型文件进行设置,我使用的是VOC的数据格式,你COCO的格式要自己修改

LiangYongAI commented 2 years ago

看到你在readme上的改动了,除了你说的那一处,但好像还有几处也需要改动一下,我列出来你确认一下需要不需要把5改成80? 1、https://github.com/xiao-hua-sheng/YOLOX-Distill/blob/074d26a0a263138e5315b755b985ef03d39ccdf0/yolox/models/yolo_head.py#L316 2、https://github.com/xiao-hua-sheng/YOLOX-Distill/blob/074d26a0a263138e5315b755b985ef03d39ccdf0/yolox/models/yolo_head.py#L318 3、https://github.com/xiao-hua-sheng/YOLOX-Distill/blob/074d26a0a263138e5315b755b985ef03d39ccdf0/yolox/models/yolo_head.py#L349

LiangYongAI commented 2 years ago

还有这一处为什么传T=20? 请教一下,谢谢 https://github.com/xiao-hua-sheng/YOLOX-Distill/blob/074d26a0a263138e5315b755b985ef03d39ccdf0/yolox/models/yolo_head.py#L313

LiangYongAI commented 2 years ago

@xiao-hua-sheng 期待你的回复,谢谢

xiao-hua-sheng commented 2 years ago

你列的1、2、3不需要修改,labels的前4位([...,:4])是bbox的中心坐标和宽高,第5位是置信度([..., 4]),剩下位数是类别 ([..., 5:])。 T的取值范围在[20,100],请根据训练结果进行调整。T表示蒸馏温度,值越大,负样本信息贡献值越大。