yolo3-pytorch
yolo3-pytorch copied to clipboard
为什么get_ignore需要网络的输出呢
请问, get_ignore在忽略样本时,用了yolov3的输出,一般正负样本会在训练之前生成吧,这是yolov3的设定吗?
是设定。
是设定。
哦哦,3Q
是设定。
这个问题我也觉得奇怪,论文中也没有明说,小哥是看的yolov3源码吗? 另外,不用模型输出,直接用targets进行encode的对比实验有做过吗?谢谢!
我看的是qqwweee keras yolo3的源码,你去掉的话,yolo3的正样本本就一个,负样本太多了。
我看的是qqwweee keras yolo3的源码,你去掉的话,yolo3的正样本本就一个,负样本太多了。
不是去掉,正负样本的定义代码没有问题,我只是说对于可忽略anchor(iou大于0.5但非最大)的确定逻辑,如果不用模型输出,而直接用target,直接在self.get_target函数中找出target与所有anchor的iou在0.5到最大值之间的anchor,这些anchor直接判为可忽略,这样正负样本和可忽略样本相当于都是训练前就定义好的,是静态的而不是动态(你这份代码的可忽略anchor的定义相当于是动态的)的,这样模型拟合会不会快一些,同时精度上会不会有提升呢?
不会有提升应该,你该理解为什么要用预测框,因为预测的结果和真实框比较接近,代表这个预测框对应的先验框是预测这个真实框的,所以忽略。直接用先验框匹配比较暴力,而且和yolo原来的匹配方式也相差较大。