-
Notifications
You must be signed in to change notification settings - Fork 476
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
训练的时候会在loss.backward()的时候卡住,这个是什么原因呀? #30
Comments
当pos_inds为0的时候,loss_bbox,loss_dfl则为0,那么反向传播就卡住了,请问这是为什么呀? |
请问是在训练coco时遇到的问题还是使用您自己的数据训练时遇到的呢? |
是在我自己的数据集上面。我发现当我全部用负样本去训练,他是可以正常反向传播的。 |
我把pos_ind去掉了 |
看起来是在训练时如果输入的图片没有检测的label,那么训练就会卡住是吗? |
感谢提醒!模型训练时,若一张卡上没有正样本,没有正样本的进程则不会执行该处的reduce_mean,其他进程会挂起等它导致卡死。现在问题已经修复。 DAMO-YOLO/damo/base_models/heads/zero_head.py Line 383 in dca62d2
|
@Alex-LI-1996 把pos_ind去掉也是一个解决办法,但是会一定程度上增大显存开销与训练耗时,该问题已得到修复,可以参考最新的代码实现。 |
感谢回复,已看过update之后的代码。我有很多No Positive Samples,去掉pos_ind,会不会performance decrease,在去掉之前也考虑过这个问题,如果说Classfication和Regression align的话,是不是box_loss参与梯度回传也是对的? |
@Alex-LI-1996 如果您的数据中有很多图片没有positive samples,推荐您在训练开始前对这部分数据进行过滤,可以一定程度上排除掉该问题,同时也可以加快训练速度,另外提醒一下,我们的mosaic_mixup数据增强也有可能产生没有标签的数据,可以通过减弱mosaic_mixup中的相关参数减少这种情况的发生。 关于负样本的box loss回传对performance的影响,这是个有趣问题,后续我们会对其进行深入研究。这里给出我粗浅的理解以供大家讨论: |
训练卡住的问题已经修复,如果还有类似的问题可以仍然在该issue下进行讨论。 |
No description provided.
The text was updated successfully, but these errors were encountered: