習(xí)率預(yù)熱調(diào)參全解析)
Vesuvius-Grandprize-Winner如何用五五開混合損失攻克CT墨跡檢測Dice加BCE與學(xué)習(xí)率預(yù)熱調(diào)參全解析【免費下載鏈接】Vesuvius-Grandprize-Winner項目地址: https://gitcode.com/gh_mirrors/ve/Vesuvius-Grandprize-WinnerVesuvius-Grandprize-Winner 是 Vesuvius Challenge 2023 大獎賽冠軍團隊開源的CT 墨跡檢測方案任務(wù)目標(biāo)是從木炭化古卷的 CT 掃描切片中自動定位卷軸上殘留的墨跡文字。它的核心訓(xùn)練配方簡單卻高效Dice Loss 加 BCE Loss 五五開混合損失再配上學(xué)習(xí)率預(yù)熱 余弦退火的調(diào)度策略。本文面向初學(xué)者帶你完整看懂這套「損失函數(shù) 學(xué)習(xí)率」調(diào)參邏輯 一、先看懂任務(wù)為什么墨跡檢測這么難項目里的標(biāo)注圖位于 all_labels/ 目錄每張圖都是某個卷軸片段上檢測出的墨跡白色即墨跡黑色為背景比如下面這張來自 2023 年 6 月的片段只留下零星幾個古希臘字母難就難在三點類別極度不平衡——一張切片上真正的墨跡像素往往不到 1%。只用普通交叉熵模型會「偷懶」全預(yù)測為背景也能拿到 99% 的準(zhǔn)確率。輸入是三維體積——每個片段有 26 個 CT 層in_chans 26模型輸入是64×64×26的小體積塊而不是單張圖。片段質(zhì)量參差——有的卷段扭曲、粘連需要翻轉(zhuǎn)、旋轉(zhuǎn)、時間幀重排等大量數(shù)據(jù)增強見train_timesformer_og.py中的train_aug_list和fourth_augment。這三點直接決定了損失函數(shù)和學(xué)習(xí)率策略的設(shè)計。二、五五開混合損失Dice BCE 的組合邏輯冠軍方案在全部三個訓(xùn)練腳本train_timesformer_og.py、train_resnet3d.py、64x64_256stride_i3d.py中都使用同一個損失組合定義在 train_timesformer_og.py 第 313–315 行self.loss_func1 smp.losses.DiceLoss(modebinary) self.loss_func2 smp.losses.SoftBCEWithLogitsLoss(smooth_factor0.25) self.loss_func lambda x, y: 0.5 * self.loss_func1(x, y) 0.5 * self.loss_func2(x, y)只有三行代碼卻是整套方案的心臟 逐項拆解H3 1?? Dice Loss專治「墨跡只占 1% 像素」Dice 損失衡量的是預(yù)測區(qū)域與真實區(qū)域的重疊度而不是逐像素的誤差。背景再多也不會淹沒墨跡信號因此天然適合類別極度不平衡的分割任務(wù)。H3 2?? SoftBCEWithLogitsLoss 與 smooth_factor0.25BCE二分類交叉熵提供穩(wěn)定的逐像素梯度但它對不平衡敏感——所以冠軍方案沒有裸用 BCE而是用帶平滑的 SoftBCEsmooth_factor0.25相當(dāng)于把標(biāo)簽從純粹的 0/1 輕微「軟化」防止模型對背景像素過度自信、訓(xùn)練后期震蕩。有趣的是推理側(cè)腳本infer.py、inference_resnet3d.py把smooth_factor調(diào)到了0.15說明團隊對平滑強度做過對比實驗0.15/0.25 都在最優(yōu)鄰域。H3 3?? 為什么是 0.5 0.5「五五開」意味著兩種損失平起平坐Dice 負責(zé)「找對位置」BCE 負責(zé)「把每個像素的置信度校準(zhǔn)好」。二者權(quán)重相等說明冠軍方案不需要精細調(diào)節(jié)損失配比——這正是它能穩(wěn)定復(fù)用的原因也是新手最可以放心照搬的一點。三、學(xué)習(xí)率預(yù)熱 余弦退火調(diào)參全解析H3 基礎(chǔ)配置AdamW 極小學(xué)習(xí)率優(yōu)化器為 AdamWweight_decay1e-6初始學(xué)習(xí)率因腳本而異腳本骨干網(wǎng)絡(luò)初始 lrtrain_timesformer_og.pyTimeSformer主力模型3e-5train_timesformer_deduped.pyTimeSformer 去重版6e-5train_resnet3d.pyResNet3D-1012e-5學(xué)習(xí)率普遍在 1e-5~1e-4 量級非常保守——因為模型是從預(yù)訓(xùn)練權(quán)重做微調(diào)激進的大學(xué)習(xí)率會直接沖壞預(yù)訓(xùn)練特征。H3 預(yù)熱第一輪線性爬坡調(diào)度器定義在 train_timesformer_og.py 第 401–407 行scheduler_cosine torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, 10, eta_min1e-6) scheduler GradualWarmupSchedulerV2(optimizer, multiplier1.0, total_epoch1, after_schedulerscheduler_cosine)GradualWarmupSchedulerV2第 379–399 行實現(xiàn)在第 1 輪內(nèi)把學(xué)習(xí)率從接近 0 線性拉到基礎(chǔ)值multiplier1.0隨后自動切換到after_scheduler。預(yù)熱的作用訓(xùn)練最初幾步梯度噪聲最大直接上全量學(xué)習(xí)率容易把模型「帶偏」爬坡式預(yù)熱相當(dāng)于給模型系上安全帶 H3 退火余弦衰減到 1e-6預(yù)熱結(jié)束后CosineAnnealingLR(T_max10, eta_min1e-6)用余弦曲線把學(xué)習(xí)率在約 10 個周期內(nèi)平滑衰減到min_lr1e-6見CFG.min_lr末期小步長精調(diào)配合gradient_clip_val1.0按范數(shù)裁剪防止偶發(fā)梯度尖峰。整套節(jié)奏是小步起跑 → 線性加速 → 余弦減速 → 低位精修是微調(diào) 3D 視覺 Transformer 的典型安全曲線。四、訓(xùn)練細節(jié)與推理拼接速覽配置項取值作用輸入塊64×64×26控制顯存與注意力開銷滑窗tile 256、stride 32大圖切塊訓(xùn)練batch size196大批次穩(wěn)定梯度精度16-mixedAMP提速時間增強fourth_augment隨機打亂/截斷 CT 層序推理階段inference_timesformer.py 的predict_fn有兩個關(guān)鍵技巧每個 64×64 預(yù)測塊先乘一個高斯核邊緣低權(quán)重、中心高權(quán)重再按mask_pred / mask_count對重疊區(qū)域做加權(quán)平均使拼接邊界平滑無接縫最終輸出經(jīng)sigmoid、裁剪并歸一化為 0~1 概率圖。五、快速上手三步跑起來git clone https://gitcode.com/gh_mirrors/ve/Vesuvius-Grandprize-Winner cd Vesuvius-Grandprize-Winner docker build -t youssef_gp . docker run --gpus all --shm-size150g -it -v /你的訓(xùn)練數(shù)據(jù)路徑:/workspace/train_scrolls youssef_gp容器內(nèi)先./download.sh下載片段、python prepare.py傳播墨跡標(biāo)注然后訓(xùn)練python train_timesformer_og.py或直接推理python inference_timesformer.py --model_path timesformer_weights.ckpt --segment_id 20231210121321 --segment_path train_scrolls最終多片段拼接腳本為 compose.py可把各片段檢測結(jié)果拼回整卷視圖例如六、總結(jié)這套方案教會我們什么不平衡分割優(yōu)先 Dice 平滑 BCE五五開是省心且有效的起點 微調(diào)場景學(xué)習(xí)率從 1e-5 量級起步先預(yù)熱 1 輪再余弦退火安全且可復(fù)現(xiàn)工程細節(jié)滑窗切塊 高斯核加權(quán)拼接是處理超大輸入體積的標(biāo)準(zhǔn)套路冠軍方案的代碼全部開源在train_timesformer_og.py、train_resnet3d.py、inference_timesformer.py等文件中配合models/目錄下的 TimeSformer、I3D 與 ResNet3D 定義新手完全可以順著「損失函數(shù) → 調(diào)度器 → 數(shù)據(jù)增強 → 推理拼接」這條線逐行讀懂整個項目?!久赓M下載鏈接】Vesuvius-Grandprize-Winner項目地址: https://gitcode.com/gh_mirrors/ve/Vesuvius-Grandprize-Winner創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考