訓(xùn)練的分離loss設(shè)計(jì)

(03-16) 21d
這個方法本身可能不起效

實(shí)驗(yàn)方法

資源:
192@pengxk/TOV_mmdetection/

1、按實(shí)例分離loss

  • \color{blue}{目標(biāo): 改loss,實(shí)現(xiàn)不同size的目標(biāo)實(shí)例用不同loss}
    --> algorithm: 根據(jù)dr修改bboxes_weight、labels_weight
  • \color{red}{Bug: mAP只有2}
    理論分析:原算法bboxes_gt, lables = filter(bboxes_gt, lables)導(dǎo)致大量漏檢。因scale被濾掉的gt,導(dǎo)致其區(qū)域原本的正例被匹配為負(fù)例。
    \color{blue}{新算法: } 1)gt_valid = filter(bboxes_gt, lables)2)filter(sampling_result, gt_valid)
def get_targets(gt_inds_valid_list=None,):
        ### add by fei ##
        if gt_inds_valid_list is None:
            gt_inds_valid_list = [None for i in range(num_imgs)]
        ### add by fei ##

def _point_target_single(gt_inds_valid=None,):
        ### filter code here ##

RepPointsHead Pipline: loss() --invoke->get_target()--invoke-> _point_target_single()

  • \color{red}{Bug: mAP只有10}
    實(shí)驗(yàn)分析:將filter(dr=[0.25, 0.33, 0.5])的保留區(qū)間都設(shè)為全部(即不過濾),性能與之前一致。說明代碼實(shí)現(xiàn)應(yīng)該正確,可能是算法策略本身的問題。
    解決:嘗試區(qū)間調(diào)參(按數(shù)量劃分>>直接按\frac{1}{2}scale劃分),性能上升至20+。

改進(jìn):filter改為soft方式(weight[filtered] = 0>>weight[filtered] = soft

2、按圖片分離loss

原則:圖片不同dr對應(yīng)loss的權(quán)值,與圖里目標(biāo)的尺度分布有關(guān)。
要求:一張圖片里的所有目標(biāo)的權(quán)值處理一致,最終效果相當(dāng)于給loss加了權(quán)值(pos_ins與neg_ins對應(yīng)的權(quán)值都要同步修改)。\color{blue}{[TODO]}\ \color{red}{no}
Bug注意:由于兩個stage(init、refine)assigner不同、匹配策略不同,造成它們輸出的匹配上的(matched)proposals數(shù)量不同。


細(xì)節(jié)proposal: valid_flagsunmap_outputs==True:由于生成的anchor可能不在圖片里(inside_flag==False),因此匹配前先去掉這些proposal,匹配完返回前再映射回最初的proposals。

  • mmAP 提升驚喜
  • 疑問:效果!=給loss加權(quán)值 \color{red}{???}
  • \color{red}{Bug: 區(qū)間外\ losses\_pts\_refine\ 全0},在跟loss的過程發(fā)現(xiàn)
    FocalLoss
    origin

    weight: 0.7098
  • 區(qū)間外losses_pts_refine全0 [Bug]

用什么區(qū)間、mean or median、什么soft_weight函數(shù)形式、...都是消融實(shí)驗(yàn)的問題,首先能肯定是:這是有性能提升的
而現(xiàn)在最需要驗(yàn)證的是:分離loss與FPN分層相結(jié)合,是否有效

3、FPN assigned by layers

[\color{blue}{TODO:} Here]

4、Predictor

卡住沒啥進(jìn)展,就會感覺抑郁


實(shí)驗(yàn)記錄 (倒序)

Separate-instance
0.01\_2b8g epoch
1

2
...
9

10

11

12
mmAP mmAP_{s} mmAP_{m} mmAP_{l}
soft(258.5)_{(wrong)} 23.2 23.3 ... 27.9 28.1 28.0 28.5 29.6
soft(258.5)_{(3e-1)} 23.4 23.5 ... 27.9 28.2 28.2 28.6
FPN 29.4
FPN+wrong 24.0 24.3 ... 27.9 28.2 28.1 28.7 29.3

說明:1)instance:對soft_weight敏感,0.3優(yōu)于0.9
2)似乎FPN與soft此消彼長 1+1<1

Separate-image
0.01\_2b8g epoch
1
2 3 4 5 6 7 8 9 10 11 12 上界
median_{(95)} 25.0 24.8 25.0 23.7 24.4 23.5 23.3 23.9 28.4 29.0
median_{(258.5)} 24.9
24.8
24.6
25.4
24.9
25.2
24.6
23.8
24.7
24.6
24.5
23.9
23.6
23.8
24.2
23.7
28.2
27.4
28.0
27.4
28.1
27.4
28.4
-
29.0
median_{(258.5)}+0.25 28.4 29.0

說明:image:對soft_weight不敏感

0.01\_2b\color{blue}{4g} epoch
1
2 3 4 5 6 7 8 9 10 11 12
\color{brown}{median_{(258.5)}} 21.7 21.7 21.7 21.1 22.2 22.0 21.4 21.7 27.0 27.3 27.3 28.0
\color{brown}{median_{(95.084)}} 21.0 21.6 21.5 21.2 21.5 24.6 24.1 23.7 27.5 27.6 27.7 28.0
mean_{(258.5)}
mean_{(114.951)} 21.1 21.1 20.7 - - - - - - - - -
min_{(258.5)}

說明:區(qū)間95比258將樣本集合劃分地更松散,區(qū)間95對應(yīng)小目標(biāo)(dr=0.5)的范圍更小,猜測具有更好的區(qū)分度

AP:PR面積
mAP:某iou_thr下所有類別的AP
mmAP:所有iou_thr
\color{blue}{GPU越多,學(xué)習(xí)率設(shè)置越大}

  • 修改pth文件的epoch

  • 按圖片分開算loss

  • env對了 0.5h

  • 首次功能實(shí)現(xiàn) 24h

  • debug 24h *n
    \color{red}{爆顯存} --> 新建多個不必要的高維tensor
    \color{red}{loss\ nan} --> loss\_cls, loss\_pts\_refine同步異常變大--> num_total_samples_refine=0?
    訓(xùn)幾輪后出\color{red}{bug} --> if None: pass

  • \color{red}{Bug: mAP只有5,依舊低的離譜}
    分析:評測代碼有bug?No 依賴的模型正確導(dǎo)入?算法本身bug(一張圖多個實(shí)例共享一個dr)?

  • 算法:

input: dr in [0.25, 0.33, 0.5]

key: 根據(jù)dr,選出對應(yīng)的proposals
    [x] 從backbone傳dr至head.loss
        or 計(jì)算f_map得dr
    [] label,gt_weights = filter_weights(dr, label_weights: (b, w, h), bbox_weights: (???))

key1: 算dr
    # 傳dr
    # AnchorFreeHead :: BaseDenseHead.forward_train()
    # ResNet_DR.forward(x, dr) ??? dr from who
key2: for layer in 多層:



參考:
[1] 多尺度訓(xùn)練 web
[2] python區(qū)間 interval(1,2)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文依次講解YOLOv1,v2,v3。博客地址https://blog.csdn.net/hancoder/art...
    HAN_望向閱讀 7,931評論 2 4
  • LOMO是百度提出的文本檢測深度網(wǎng)絡(luò)模型,用以解決目前主流模型(如EAST)的感受野對長文本覆蓋不足以及對彎曲或波...
    ZerOo0閱讀 755評論 0 0
  • 張利平2021.3.6「學(xué)習(xí)《情緒按鈕》第20天收獲: [太陽]今天學(xué)習(xí)內(nèi)容: 第七章《情緒的來源》(五)情緒的來...
    張利平閱讀 5,347評論 1 3
  • 這周的作文題目是:假設(shè)你現(xiàn)在在火車上,對面坐著一個漂亮的異性,去構(gòu)思一段故事,想想接下來會發(fā)生什么。那么接下來我的...
    2077516閱讀 2,817評論 3 0
  • 人們問愛因斯坦為何能在1905年提出那么多改變?nèi)祟愓J(rèn)識世界的理論,他謙虛地回答道: “并不是我很聰明,只是我和問題...
    世界和平_眾生安康閱讀 7,498評論 1 12

友情鏈接更多精彩內(nèi)容