RrR*_*rR- 5 machine-learning image-processing object-detection computer-vision pytorch
我试图培养使用自定义的数据集faster_rcnn使用Pytorch实施Detectron的位置。我已根据 repo 中的指南对数据集和配置进行了更改。
训练过程成功执行,但从一开始loss_cls和loss_bbox值就为 0,即使训练完成,最终输出也不能用于进行评估或推理。我想知道这两个是什么意思,以及如何在训练过程中改变这些值。我在这里使用的确切模型是e2e_faster_rcnn_R-50-FPN_1x
对此的任何帮助将不胜感激。我在 Anaconda、CUDA 9、cuDNN 7 上使用 Ubuntu 16.04 和 Python 3.6。
###这两个损失是什么?在训练多目标检测器时,您通常(至少)有两种类型的损失:
loss_bbox:一个损失的措施如何“从紧”的预测边界框是地面实况对象(通常是一个回归的损失,L1,smoothL1等)。loss_cls:衡量每个预测边界框分类正确性的损失:每个框可能包含一个对象类,或一个“背景”。这种损失通常称为交叉熵损失。###为什么损失总是为零?在训练检测器时,模型会预测每个图像相当多(约 1K)个可能的框。它们中的大多数是空的(即属于“背景”类)。损失函数将每个预测框与图像的真实框注释相关联。
如果预测框与地面实况框有显着重叠,则计算loss_bbox和loss_cls以查看模型能够预测地面实况框的能力。
另一方面,如果预测框与任何地面实况框没有重叠,则仅loss_cls针对“背景”类计算。
但是,如果与真实情况只有非常部分的重叠,则预测框将被“丢弃”并且不会计算任何损失。我怀疑,出于某种原因,您的培训课程就是这种情况。
我建议您检查确定预测的盒装注释和地面实况注释之间关联的参数。此外,看看你的“锚点”的参数:这些参数决定了预测框的比例和纵横比。
| 归档时间: |
|
| 查看次数: |
4258 次 |
| 最近记录: |