首页 PaddleCV 帖子详情
f_rcnn,loss下降,loss_box=0
收藏
快速回复
PaddleCV 问答目标检测 3756 45
f_rcnn,loss下降,loss_box=0
收藏
快速回复
PaddleCV 问答目标检测 3756 45

用的自己的数据训练faster_rcnn做目标检测,中间输出如下

2020-10-19 09:59:57,175-INFO: iter: 620, lr: 0.010000, 'loss_cls': '0.000000', 'loss_bbox': '0.000000', 'loss_rpn_cls': '0.011591', 'loss_rpn_bbox': '0.015820', 'loss': '0.029458', eta: 0:10:56, batch_cost: 1.72687 sec, ips: 2.31633 images/sec
2020-10-19 10:00:30,870-INFO: iter: 640, lr: 0.010000, 'loss_cls': '0.000000', 'loss_bbox': '0.000000', 'loss_rpn_cls': '0.008165', 'loss_rpn_bbox': '0.014647', 'loss': '0.023170', eta: 0:10:05, batch_cost: 1.68186 sec, ips: 2.37832 images/sec
2020-10-19 10:01:05,036-INFO: iter: 660, lr: 0.010000, 'loss_cls': '0.000000', 'loss_bbox': '0.000000', 'loss_rpn_cls': '0.006240', 'loss_rpn_bbox': '0.014518', 'loss': '0.019888', eta: 0:09:39, batch_cost: 1.70321 sec, ips: 2.34850 images/sec
……

数据组织在datase/mydata中,有JPEGImages、Annotations、train_list.txt……。yml文件只修改了训练次数和reader,如下

!VOCDataSet
    anno_path: train_list.txt # 训练集列表文件基于数据集根目录的相对路径
    dataset_dir: dataset/mydata# 数据集根目录
    use_default_label: false# 是否使用默认标签,默认为true。
    with_background: false# 背景是否作为一类标签,默认为true。

loss_rpn_cls、loss_rpn_bbox和loss都在下降,但loss_cls和loss_bbox一直为0,eval的结果也是map为0。如下

2020-10-19 10:11:44,500-INFO: Start evaluate...
2020-10-19 10:11:44,501-INFO: Accumulating evaluatation results...
2020-10-19 10:11:44,501-INFO: mAP(0.50, 11point) = 0.00%
2020-10-19 10:11:44,501-INFO: Best test box ap: 0.0, in iter: 0

请问这种可能是什么原因导致的box没有,而loss一直在下降

0
收藏
回复
全部评论(45)
时间顺序
AIStudio810258
#2 回复于2020-10

看上去,只有rpn网络在工作。

0
回复
AIStudio810258
#3 回复于2020-10

是不是第一阶段输出的候选框有问题,导致第二阶段无法回归啊

0
回复
geoyee
#4 回复于2020-10
是不是第一阶段输出的候选框有问题,导致第二阶段无法回归啊

那大佬我该怎么去排除问题并解决,数据是我自己框的,我应该先再检查数据还是说从哪儿开始检查

0
回复
AIStudio810258
#5 回复于2020-10

是同学~~

只改了数据集的话,看看是不是数据集的问题吧。可以参考文档:

https://paddledetection.readthedocs.io/tutorials/Custom_DataSet.html

0
回复
geoyee
#6 回复于2020-10
是同学~~ 只改了数据集的话,看看是不是数据集的问题吧。可以参考文档: https://paddledetection.readthedocs.io/tutorials/Custom_DataSet.html
展开

还是没感觉有啥问题啊,枯了。datas/carDetection_RGB下的目录是这样的train_list.txt设这样的配置文件是这样的

我把项目设置为公开了,麻烦同学帮忙看看,谢谢啦

https://aistudio.baidu.com/aistudio/projectdetail/1123144

0
回复
AIStudio810260
#7 回复于2020-10
geoyee #6
还是没感觉有啥问题啊,枯了。datas/carDetection_RGB下的目录是这样的[图片]train_list.txt设这样的[图片]配置文件是这样的[图片][图片] 我把项目设置为公开了,麻烦同学帮忙看看,谢谢啦 https://aistudio.baidu.com/aistudio/projectdetail/1123144
展开

我没看错吧?类别数为1?全都背景了还训练啥?

0
回复
geoyee
#8 回复于2020-10
我没看错吧?类别数为1?全都背景了还训练啥? [图片]

不是把with_backgroud设置为false了吗?也不对吗

0
回复
AIStudio810258
#9 回复于2020-10
geoyee #8
不是把with_backgroud设置为false了吗?也不对吗

这个num_class是指训练数据集标注的种类数

0
回复
AIStudio810258
#10 回复于2020-10

比如数据集共10类,这里就设为10.

0
回复
AIStudio810258
#11 回复于2020-10

训练时会将与真实框交并比小于一个阈值候选框标为背景类别,加上原来的数据标注的10个类别,一共是11个类别。是这个意思

0
回复
AIStudio810258
#12 回复于2020-10

也就是7楼说的num_classes设为1就全是背景了的意思

0
回复
AIStudio810258
#13 回复于2020-10

with_backgroud设置的设置由框架处理。num_classes根据数据集的标注类别数设置

0
回复
何必固執丶
#14 回复于2020-10

有点多呢

 

0
回复
geoyee
#15 回复于2020-10
with_backgroud设置的设置由框架处理。num_classes根据数据集的标注类别数设置

好的,里面只有一类就是car,那我把num_classes设置成2试试

0
回复
geoyee
#16 回复于2020-10
with_backgroud设置的设置由框架处理。num_classes根据数据集的标注类别数设置

loss_cls有了,这个loss_bbox也一直是0,结果map也是0

0
回复
AIStudio810260
#17 回复于2020-10
geoyee #16
[图片] loss_cls有了,这个loss_bbox也一直是0,结果map也是0

有没有加载预训练模型呢?还有就是学习率有没有调整下试试看?

0
回复
AIStudio810258
#18 回复于2020-10

你的数据集差别和demo挺大的,锚框重新聚类了么?

0
回复
geoyee
#19 回复于2020-10
有没有加载预训练模型呢?还有就是学习率有没有调整下试试看?

好的谢谢我再试试

0
回复
geoyee
#20 回复于2020-10
你的数据集差别和demo挺大的,锚框重新聚类了么?

没有,我试试,谢谢

0
回复
geoyee
#21 回复于2020-10
你的数据集差别和demo挺大的,锚框重新聚类了么?

感谢,修改了一下图像大小,重新分析了锚框的大小,修改了大小和比例,一跑就OK

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户