估實(shí)戰(zhàn):如何用pytorch_inference.py測(cè)出每個(gè)嵌套維度的準(zhǔn)確率(附TTA技巧))
MRL推理與評(píng)估實(shí)戰(zhàn)如何用pytorch_inference.py測(cè)出每個(gè)嵌套維度的準(zhǔn)確率附TTA技巧【免費(fèi)下載鏈接】MRLCode repository for the paper - Matryoshka Representation Learning項(xiàng)目地址: https://gitcode.com/gh_mirrors/mrl/MRLMRLMatryoshka Representation Learning套娃表示學(xué)習(xí)是同名論文的官方開(kāi)源實(shí)現(xiàn)其評(píng)估腳本pytorch_inference.py可以一條命令測(cè)出同一個(gè) ResNet50 模型在 82048 各嵌套維度下的 Top-1/Top-5 準(zhǔn)確率還支持 TTA 測(cè)試時(shí)增強(qiáng)與 ImageNet 魯棒性基準(zhǔn)評(píng)測(cè)。本文帶你走通從環(huán)境配置到讀懂輸出的 MRL 推理評(píng)估完整流程。為什么能測(cè)出每個(gè)嵌套維度的準(zhǔn)確率Matryoshka 的核心思想一個(gè) 2048 維特征向量的前綴本身就是一個(gè)可用的短表示。官方實(shí)現(xiàn)用 MRL_Linear_Layer 在 8、16、32、64、128、256、512、1024、2048 這 9 個(gè)維度上同時(shí)訓(xùn)練分類頭因此評(píng)估時(shí)天然可以逐維度拆解環(huán)境準(zhǔn)備三步裝好依賴與數(shù)據(jù)git clone https://gitcode.com/gh_mirrors/mrl/MRL cd MRL pip3 install -r requirements.txt評(píng)測(cè)數(shù)據(jù)需要序列化為 FFCV 格式write_imagenet.sh 可一鍵完成cd train export IMAGENET_DIR/path/to/imagenet export WRITE_DIR/your/write/dir ./write_imagenet.sh 500 0.50 90一鍵評(píng)估命令快速測(cè)出各嵌套維度準(zhǔn)確率cd inference python pytorch_inference.py --path final_weight.pt --dataset V1 --mrl三種典型模型形態(tài)命令只需微調(diào)參數(shù)# MRL-E 高效版單頭按維度切分 python pytorch_inference.py --path ckpt.pt --dataset V1 --mrl --efficient # 固定維度 FF 基線用 --rep_size 指定維度如 512 python pytorch_inference.py --path ckpt.pt --dataset V1 --rep_size 512 # 官方上傳的舊版 checkpoint命名如 r50_mrl1_e0_ff2048.pt python pytorch_inference.py --path r50_mrl1_e0_ff2048.pt --dataset V1 --mrl --old_ckpt常用參數(shù)速查表參數(shù)作用--path模型 checkpoint.pt路徑--datasetV11K 驗(yàn)證集/ V2 / A / R / sketch--mrl以 MRL 模型加載一次評(píng)估全部 9 個(gè)維度--efficientMRL-E 變體--rep_size固定維度基線的維度MRL 模型不需要--tta開(kāi)啟 TTA 測(cè)試時(shí)增強(qiáng)--old_ckpt兼容官方舊版 checkpoint--workersdataloader 進(jìn)程數(shù)默認(rèn) 12讀懂輸出逐維度 Top-1 / Top-5 與單圖耗時(shí)腳本會(huì)為每個(gè)嵌套維度依次打印三段指標(biāo)Rep. Size 8 Top-1 accuracy for 8 : xx.xx Top-5 accuracy for 8 : xx.xx Total time: xx.x (average time per image: xx.xx ms)逐維度統(tǒng)計(jì)全部由 utils.py 中的evaluate_model_nesting()完成對(duì)每個(gè)維度做 top-5 排序、累計(jì) Top-1/Top-5 命中數(shù)最后按圖片總數(shù)歸一化。想評(píng)估其他維度只需修改腳本頂部的NESTING_LIST常量pytorch_inference.py。TTA技巧水平翻轉(zhuǎn) logits融合準(zhǔn)確率再提一截加上--tta參數(shù)即可開(kāi)啟 TTATest-Time Augmentation。實(shí)現(xiàn)非常簡(jiǎn)潔原圖與水平翻轉(zhuǎn)圖各推理一次兩組 logits 相加融合# utils.py 中 TTA 的核心邏輯 logits model(img_input) logits model(torch.flip(img_input, dims[3]))torch.flip(..., dims[3])生成鏡像圖兩組 logits 求和后取 softmax2 倍縮放不影響 argmax 排序從而穩(wěn)定帶來(lái)小幅準(zhǔn)確率提升。?? 注意官方論文報(bào)告的分類結(jié)果不含 TTATTA 主要服務(wù)于自適應(yīng)分類的模型級(jí)聯(lián)場(chǎng)景可參考 model_analysis/ 目錄。進(jìn)階一魯棒性基準(zhǔn)一鍵切換--dataset支持四個(gè)魯棒性測(cè)試集命令結(jié)構(gòu)完全一致V2ImageNetV2經(jīng) imagenetv2_pytorch 自動(dòng)下載無(wú)需本地路徑AImageNet-ARImageNet-RsketchImageNet-Sketch后三者需放在ROOT目錄默認(rèn)../../IMAGENET/。ImageNet-A/R 只有 200 個(gè)類腳本通過(guò) imagenet_id.py 中的索引映射自動(dòng)選取對(duì)應(yīng) logits 列無(wú)需任何手工處理。進(jìn)階二保存推理結(jié)果銜接模型分析--save_logits、--save_softmax、--save_gt、--save_predictions四個(gè)開(kāi)關(guān)會(huì)把每張圖的 logits、概率、真值標(biāo)簽與預(yù)測(cè)結(jié)果存成 .pth 文件命名自動(dòng)組合為mrl1_efficient0_datasetV1_ttaFalse_logits.pth形式供 model_analysis/ 下的分析 notebook 直接使用GradCAM可視化各嵌套維度的注意力可見(jiàn)小維度更易混淆同一超類內(nèi)的類別Custom SuperClass基于 WordNet 層級(jí)的 30 個(gè)超類性能分析Oracle Upper Bound為每張圖片尋找最優(yōu)維度計(jì)算理論上限Model Cascades模型級(jí)聯(lián)策略擴(kuò)展同一個(gè)腳本做圖像檢索評(píng)估加--retrieval參數(shù)同一腳本即可轉(zhuǎn)做特征導(dǎo)出把數(shù)據(jù)庫(kù)與查詢集的特征向量 dump 成 .npy 數(shù)組再配合 retrieval/ 目錄下的 notebookfaiss_nn.ipynb、reranking.ipynb完成近鄰檢索與重排序。各嵌套維度下的檢索質(zhì)量對(duì)比常見(jiàn)問(wèn)題 FAQcheckpoint 里帶module.前綴訓(xùn)練端用 DDP 保存utils.py 的get_ckpt()會(huì)自動(dòng)剝掉前 7 個(gè)字符通常無(wú)需處理。--rep_size沒(méi)生效MRL 模型會(huì)忽略該參數(shù)--mrl下默認(rèn)評(píng)估全部 9 個(gè)維度。加載官方 checkpoint 報(bào)錯(cuò)舊版頭結(jié)構(gòu)MultiHead/SingleHead必須加--old_ckpt才能正確構(gòu)建。只能在 GPU 上跑腳本內(nèi)部固定調(diào)用model.cuda()需 CUDA 環(huán)境。想改嵌套維度修改 pytorch_inference.py 頂部的NESTING_LIST即可。小結(jié)一條命令pytorch_inference.py --mrl即可輸出 8→2048 共 9 個(gè)嵌套維度的 Top-1/Top-5 準(zhǔn)確率與單圖耗時(shí)加--tta用水平翻轉(zhuǎn)測(cè)試時(shí)增強(qiáng)輕松再提一點(diǎn)準(zhǔn)確率加--save_*系列開(kāi)關(guān)保存推理結(jié)果銜接模型分析與 GradCAM 可視化魯棒性基準(zhǔn)V2/A/R/sketch與圖像檢索評(píng)估復(fù)用同一套腳本參數(shù)切換即可【免費(fèi)下載鏈接】MRLCode repository for the paper - Matryoshka Representation Learning項(xiàng)目地址: https://gitcode.com/gh_mirrors/mrl/MRL創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考