Yolov3模型框架darknet研究(十二)学会看懂darknet训练log

前言

darknet训练时会打印出很多log,很多人不知道这里面log到底是什么含意,比如说为什么有nan值?本文结合代码解释一下这些log有哪些部分组成,分别代表了什么意思。

分析一

先看这部分log,如下图所示

这些log在forward_yolo_layer(const layer l, network net) 函数末尾打印出。 yolo3一共3个yolo层,分别在第82,94,106层,所以该log的开头是按82,94,106来交替出现的。

下面分析该log的其它部分代表什么意思。

先看每行最后的一个部分,即count。大家都知道yolo层就是输出层,就每一个输出层,软件会先计算得到一个output多维数组,里面包括yolo_size(比如13x13)x3个预测框,它们中和ground truth最高的iou的那个预测框,如果其序号等于6或7或8(以82层为例,其mask值),那么count加1,这意味着该层某个预测框已经和该训练图片里面ground truth某个框比较相近了。如此循环,直到小batch(该值=cfg里面的batch/subdivision)里面训练图片遍历完。

Avg IOU=avg_iou/count,其中count如上面所述,avg_iou值是当count加1时,对该iou进行累加求得的和。然后再除以count得到真正的平均IOU,即Avg IOU。注意的一点,就是训练时,尤其是刚开始,count值很可能为0,0作为分母的除式结果就为nan

Class=avg_cat/class_count,其中,class_count的值以及意思和count完全一样。avg_cat是指预测框和标注框相近时,其标注框的种类对应到预测框里面那个class的预测值。以3个class为例,某个预测框里面会对应带有三个预测值0.3 0.2 0.8。当相近标注框种类为2时,那么avg_cat=0.8。avg_cat也是小batch里面图片遍历后的累加和,最后除以class_count得到均值Class。

Obj=avg_obj/count。avg_obj是指和标注框最接近且在相应的mask范围内的预测框所带的目标置信度,其也是累加和,最后除以count得到均值Obj。

No Obj=avg_anyobj/(l.w*l.h*l.n*l.batch)。avg_anyobj是所有预测框的目标置信度相加和。分母是所有预测框数目相加和。训练到后面,该值应该越来越低。

.5R和.75R分别代表 iou大于阈值为0.5和0.75所对应的recall值。请看下面代码:

                if(iou > .5) recall += 1;
                if(iou > .75) recall75 += 1;

就是在count+1的条件下,再加一个判断,即要求 iou不仅仅最大,而且大于0.5或0.75阈值才能加1. 我个人认为,这两个值是这些打印指标值里面最有参考价值的。

最后打印值 .5R= recall/count, .75R=recall75/count  理想情况下,这两个值应该等于1.

分析二

在上面的log中会时不时夹杂如下例所示的一行log

 第一个数字代表batch的序号,cfg里面设定了最大的batch数目(max_batches),当batch序号大于max_batches就训练结束,所以该数字也可以理解成循环迭代次数。这个batch数字对应抽取了batch(cfg里面有设定)个数目的训练样本,我们这里叫大batch,假设为64。上面说过了,每次训练前向forward和反向bp时是以小batch数目64/subdivision(假设16)=4进行的,但是真正更新网络参数是在大bath数目64都训练完后进行。

总结一下,这行log是在大batch数目64训练完成后打印出来的。后面两个数字是当前loss值和平均loss值,其中平均loss值计算公式如下:

avg_loss = avg_loss*.9 + loss*.1;

第四个数字“xxx rate ”是指当前的学习率。 

第五个数字“xxx seconds"是指训练完大batch数目的图片需要花多长时间。

第六个数字是指 循环迭代次数*大batch数目

总结

以cfg里面batch=8  subdivision=2为例,它的训练log应该如下所示:

Region 82 Avg IOU 。。。 。。。

Region 94 Avg IOU。。。 。。。

Region 106 Avg IOU。。。。。。

Region 82 AVG IOU。。。。。。

Region 94 Avg IOU。。。。。。

Region 106 Avg IOU。。。。。。

1:  xxx,  xxx avg, xxx rate, xxx seconds, 8 images

xxx xxx

总之,Region。。。是在每个小batch训练完后打印, loss值这行是在大batch训练完打印出来的。

 

  • 13
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ltshan139

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值