它还有第三项细化指标dfl_loss。 dfl_loss 分布式焦点损失:精益求精 dfl_loss全称是Distribution Focal Loss,中文名称为“分布式焦点损失”。 它辅助box_loss,提供额外的信息,通过对边界框位置的概率分布进行优化,进一步提高模型对边界框位置的细化和准确度。 如上图所示,AI模型成功预测出了①的位置。但是红、蓝、绿3...
dfl_loss全称是Distribution Focal Loss,中文名称为“分布式焦点损失”。 它辅助box_loss,提供额外的信息,通过对边界框位置的概率分布进行优化,进一步提高模型对边界框位置的细化和准确度。 如上图所示,AI模型成功预测出了①的位置。但是红、蓝、绿3个框中的①,好像哪个都没错。因此dfl_loss提供了一个可信度,表明...
在ultralytics/utils/loss.py的_df_loss函数中计算dfl Loss 最后返回的第一个值为总损失,第二个包含box、cls以及dfl loss 之后再one2many算好Loss之后,继续计算one2one的Loss 等Loss计算完成之后,继续在ultralytics/engine/trainer.py中执行Backward、打印指标、优化器参数更新、画图等 最后在ultralytics/engine/t...
box_loss 是边界框回归损失,用于评估预测的边界框与真实边界框之间的差异。 cls_loss 是分类损失,用于评估类别预测的准确性。 dfl_loss 是防御性损失,用于提高模型的泛化能力。从输出结果来看,经过两个训练周期后,模型的边界框损失、分类损失和防御性损失都有所下降,这表明模型在训练过程中学习了如何更好地预测边界...
深度学习中,我通常用损失函数下降的曲线来观察模型训练的情况。在训练时主要包含三个方面的损失:定位损失(box_loss)、分类损失(cls_loss)和动态特征损失(dfl_loss),在训练结束后,可以在runs/目录下找到训练过程及结果文件,如下所示: 各损失函数作用说明: ...
box_loss负责预测边界框的精确位置,cls_loss用于分类准确性,而dfl_loss通常关联于模型预测边界框的分布。所有这些损失函数随着训练的进行都呈现出下降趋势,这表明模型在学习过程中不断提高了对目标检测任务的准确性。特别是,在训练的初期,损失迅速减少,这表明模型快速捕捉到了数据的关键特征。随着训练的深入,损失下降...
('box_loss', 'seg_loss', 'cls_loss', 'dfl_loss') 1. 开启训练模式,需要注意的是,我们虽然设计batch=16,但训练集中只有4张图像,因此batch=4。 self.model.train() 1. 数据封装 通过TQDM将训练器封装为进度条的形式,并将其输入到模型中进行前向传播 pbar = TQDM(enumerate(self.train_loader), tota...
定位损失box_loss:预测框与标定框之间的误差(GIoU),越小定位得越准; 分类损失cls_loss:计算锚框与对应的标定分类是否正确,越小分类得越准; 动态特征损失(dfl_loss):DFLLoss是一种用于回归预测框与目标框之间距离的损失函数。在计算损失时,目标框需要缩放到特征图尺度,即除以相应的stride,并与预测的边界框计算Cio...
在深度学习领域,我们通常通过观察损失函数下降的曲线来评估模型的训练状态。YOLOv8训练过程中,主要包含三种损失:定位损失(box_loss)、分类损失(cls_loss)和动态特征损失(dfl_loss)。训练完成后,相关的训练记录和结果文件会保存在runs/目录下,具体内容如下: ...
我下载的config文件中没有(关于数据集的)metainfo 参数,导致训练自己数据集时,loss_bbox 和 loss_dfl 为 0。希望能得到你的解答ErwinCheung commented Dec 24, 2024 • edited @chenjiafu-George 非常感谢,加上metainfo=dict(classes=classes),终于可以正常训练了。 PS:之前loss_bbox和loss_dfl一直为0 ...