1. 程式人生 > >機器學習備註:Yolo訓練時輸出引數的解釋

機器學習備註:Yolo訓練時輸出引數的解釋

舉例

比如某一次的輸出結果如下

訓練log中各引數的意義  5: 10.222071, 10.294983 avg loss, 0.000000 rate, 395.829699 seconds, 320 images Loaded: 0.000000 seconds Region Avg IOU: 0.227881, Class: 1.000000, Obj: 0.381839, No Obj: 0.465026, Avg Recall: 0.000000,  count: 16 Region Avg IOU: 0.203516, Class: 1.000000, Obj: 0.494320, No Obj: 0.466775, Avg Recall: 0.000000,  count: 8 Region Avg IOU: 0.313356, Class: 1.000000, Obj: 0.474162, No Obj: 0.466196, Avg Recall: 0.307692,  count: 13 Region Avg IOU: 0.267079, Class: 1.000000, Obj: 0.500940, No Obj: 0.466384, Avg Recall: 0.250000,  count: 8 Region Avg IOU: 0.419788, Class: 1.000000, Obj: 0.423686, No Obj: 0.466252, Avg Recall: 0.428571,  count: 7 Region Avg IOU: 0.361871, Class: 1.000000, Obj: 0.427209, No Obj: 0.466280, Avg Recall: 0.200000,  count: 10 Region Avg IOU: 0.365572, Class: 1.000000, Obj: 0.430385, No Obj: 0.466651, Avg Recall: 0.125000,  count: 8 Region Avg IOU: 0.342102, Class: 1.000000, Obj: 0.417325, No Obj: 0.466240, Avg Recall: 0.222222,  count: 9

參考原始碼

region_layer.c ==> forward_region_layer()函式最後一行: printf("Region Avg IOU: %f, Class: %f,           Obj: %f,       No Obj: %f,                       Avg Recall: %f,  count: %d\n",           avg_iou/count,   avg_cat/class_count, avg_obj/count, avg_anyobj/(l.w*l.h*l.n*l.batch), recall/count,    count);

解釋

5 -- batch iteration, 表次訓練了多少個batch次,或者說batch -> batch -> batch ....這樣共訓練了多少個輪迴 10.222071 -total loss 10.294983 - average loss, 平均損失率,最終結構的評估引數,越小越好,官網給出例子是

  • 9002 - iteration number (number of batch)
  • 0.060730 avg - average loss (error) - the lower, the better(差不達到這個點,或不再下降,就可以停下來了)

Region Avg IOU - 平均的IOU,是預測的bounding box和ground truth的交集與並集之比,期望該值趨近於1。

Class: 標註物體的概率(找到了多少個類/共有多少個類),期望該值趨近於1(俺這隻有一個類,是1) Obj -- 表示把正本判斷為正本得到的平均confidence,該期望該值趨近於1. No Obj -- 表示總confidence/總box數,期望該值越來越小但不為零. Avg Recall:找出來的正本數 與 總的正本數之比值,期望該值趨近於1 count: 總共找到的正本數