測(cè)數(shù)據(jù)里的選型判斷)
305M 打贏 1014Mpytorch-image-models 官方實(shí)測(cè)數(shù)據(jù)里的選型判斷【免費(fèi)下載鏈接】pytorch-image-modelsThe largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResNeXT, EfficientNet, NFNet, Vision Transformer (ViT), MobileNetV4, MobileNet-V3 V2, RegNet, DPN, CSPNet, Swin Transformer, MaxViT, CoAtNet, ConvNeXt, and more項(xiàng)目地址: https://gitcode.com/GitHub_Trending/py/pytorch-image-models本文只用 pytorch-image-modelstimm最大的 PyTorch 視覺骨干網(wǎng)絡(luò)庫倉庫內(nèi)三份官方數(shù)據(jù)做判斷results/results-imagenet.csv 的 ImageNet-1K 精度、results/benchmark-infer-amp-nchw-pt291-cu130-pro6000maxq.csv 的推理吞吐和 results/benchmark-train-amp-nchw-pt112-cu113-rtx3090.csv 的訓(xùn)練吞吐。核心結(jié)論只有一句選模型別先盯著參數(shù)量305M 的模型排在了 1014M 前面而輸入分辨率是精度與成本兩側(cè)共同的隱形杠桿。評(píng)測(cè)口徑3 份 CSV 能回答什么不能回答什么本節(jié)回答和誰比、數(shù)據(jù)從哪來。精度側(cè)以 ImageNet-1K 驗(yàn)證集 Top-1 為準(zhǔn)表中每個(gè)模型都標(biāo)注了實(shí)際輸入尺寸224 到 560 不等吞吐側(cè)是單卡基準(zhǔn)推理數(shù)據(jù)為 NVIDIA RTX PRO 6000 Max-Q 上 PyTorch 2.9.1 CUDA 13.0、AMP 混合精度、NCHW 排布單位為樣本/秒訓(xùn)練數(shù)據(jù)來自 RTX 3090、PyTorch 1.12。所有數(shù)字直接取自倉庫 CSV可逐行核對(duì)。需要明確的邊界倉庫沒有發(fā)布 CIFAR 系列基準(zhǔn)網(wǎng)絡(luò)上流傳的CIFAR-10 上 ResNet50 約 96%一類數(shù)字并非官方口徑本文不引用。另外 ImageNet-1K 是單一分類基準(zhǔn)Top-1 數(shù)值只反映在 1000 類、224 分辨率上的判別力不能外推為小數(shù)據(jù)集或低分辨率任務(wù)的表現(xiàn)。核心發(fā)現(xiàn)一參數(shù)規(guī)模不賣票305M 比 1014M 高 0.27 個(gè)點(diǎn)本節(jié)回答大參數(shù)是否等于更高精度。答案是在同一輸入分辨率下參數(shù)仍然重要但榜單頭部不由參數(shù)決定。先看 224 分辨率的同場(chǎng)對(duì)比results/results-imagenet.csveva_giant_patch14_2241012.6MTop-1 為 88.90%convnext_large197.8M為 84.30%convnext_base88.6M為 83.84%。1013M 比 89M 高 5.06 個(gè)點(diǎn)——分辨率鎖定時(shí)參數(shù)確實(shí)值錢。但榜單前五里參數(shù)最多的 eva_giant_patch14_5601014.45M只有 89.79%而第一名 eva02_large_patch14_448.mim_m38m_ft_in22k_in1k 只有 305.08M做到 90.06%convnextv2_huge660.29M的 88.86% 也被其壓了 1.2 個(gè)點(diǎn)。差距來自預(yù)訓(xùn)練配方與架構(gòu)而非規(guī)模timm/models/eva.py 中 EVA02 系列默認(rèn)use_abs_pos_embFalse依賴自監(jiān)督 MIM 預(yù)訓(xùn)練學(xué)到的特征表示。同檔位的對(duì)照更直接eva02_base_patch14_448.mim_in22k_ft_in22k_in1k87.12M拿到 88.68%比參數(shù)幾乎一樣的 convnext_base88.59M最好成績 86.83% 高約 1.9 個(gè)點(diǎn)。核心發(fā)現(xiàn)二輸入分辨率是隱形杠桿吞吐是賬單本節(jié)回答不花一分錢加參數(shù)還能從哪摳精度。同一模型換輸入尺寸精度會(huì)明顯移動(dòng)resnet50.a1_in1k 從 224 到 288Top-1 由 80.38% 升到 81.24%0.86ppeva_giant 從 224 到 560 累計(jì) 0.90ppregnety_040 從 224 的 79.25% 到 288 的 83.05%3.8pp注意該條目換成了 ra3 預(yù)訓(xùn)練版本屬疊加效應(yīng)。代價(jià)在同一份吞吐表里resnet50 從 160 輸入11932 樣本/秒升到 2246459 樣本/秒吞吐近乎腰斬而精度只換來 4 到 5 個(gè)點(diǎn)。工程判斷是批量服務(wù)場(chǎng)景先用 224 定基線把吞吐余量換 288/384 分辨率比換大模型更劃算。另有一個(gè)容易被忽略的實(shí)現(xiàn)因素mobilenetv3_large_100 與 tf_mobilenetv3_large_100 參數(shù)量完全相同5.48M前者吞吐 19788 樣本/秒、后者 16568命名規(guī)范不同帶來的就是 19% 的實(shí)測(cè)差距。橫向?qū)Ρ葟?15M 到 305M 的一檔表檔位模型Top-1輸入?yún)?shù)(M)推理吞吐樣本/秒適用場(chǎng)景極致輕量mobileone_s4.apple_in1k79.4522414.957130端側(cè)、移動(dòng) App輕量regnety_040.pycls_in1k79.2522420.65—端云通吃、小模型上限中檔resnet50.a1_in1k80.3822425.566459批量推理、延遲寬松中高檔eva02_base_patch14_448.mim88.6844887.12—單卡高精度旗艦eva02_large_patch14_448.mim_m38m90.06448305.08—離線評(píng)估、競(jìng)賽吞吐取自 RTX PRO 6000 Max-Q、AMP、NCHW—表示該模型未收錄在吞吐基準(zhǔn)中。解讀三句15M 到 25M 檔精度只有約 1 個(gè)點(diǎn)差距選型主要看延遲預(yù)算而非精度從 25M 跨到 87M 是性價(jià)比拐點(diǎn)同樣不漲吞吐檔位假設(shè)下Top-1 直接跳 8 個(gè)點(diǎn)以上305M 檔相對(duì) 87M 檔只多 1.4 個(gè)點(diǎn)除非卡精度上限否則投入產(chǎn)出比驟降。按場(chǎng)景選型4 種部署檔位的最小配置本節(jié)回答我這種情況到底拉哪個(gè)模型。所有權(quán)重名可直接傳給timm.create_model。移動(dòng)/端側(cè)15M選 mobileone_s479.45% 的 Top-1 配 7130 樣本/秒是表中唯一同時(shí)滿足低精度損失和最高吞吐的選項(xiàng)理由就一條它把深度可分離卷積的推理開銷壓到了最低檔。import timm model timm.create_model(mobileone_s4, pretrainedTrue, num_classes10)服務(wù)器批量推理20-30Mregnety_040 或 resnet50延遲寬松就上 regnety_040 并把輸入提到 2883.8pp 里有 1 個(gè)點(diǎn)是預(yù)訓(xùn)練配方貢獻(xiàn)屬保守估計(jì)要生態(tài)兼容性選 resnet50.a1_in1k288 輸入可到 81.24%。model timm.create_model(regnety_040, pretrainedTrue) model.eval() # 配合 timm.data.transforms_factory.create_transform(model_nameregnety_040, # img_size288) 生成匹配 288 輸入的前處理單卡高精度50-100Meva02_base_patch14_44887M 參數(shù)做到 88.68%超過同規(guī)模 convnext_base 約 1.9 個(gè)點(diǎn)注意它要求 448 輸入顯存與帶寬開銷比 224 檔高一截部署前先用 benchmark.py 在目標(biāo)卡上實(shí)測(cè)吞吐。精度上限300Meva02_large_patch14_448.mim_m38m_ft_in22k_in1k90.06% 是全庫第一且只需要 305M 參數(shù)訓(xùn)練側(cè)開混合精度即可倉庫 train.py 原生支持--amp無需改代碼。邊界條件哪些數(shù)字不能直接比本節(jié)回答照抄表格時(shí)會(huì)踩的坑。第一跨分辨率的 Top-1 不可直接比224 的 80.38 與 448 的 90.06 之間差著輸入尺寸做決策時(shí)必須對(duì)齊模型輸入尺寸這一對(duì)。第二Top-1 與 Top-5 不可互換results/results-imagenet.csv 中 Top-5 普遍高 9 到 30 個(gè)點(diǎn)匯報(bào)口徑要寫死。第三吞吐數(shù)字綁定硬件與編譯棧倉庫同時(shí)提供 3090/4090/5090/Max-Q 四套 CSV跨文件比較沒有意義bf16 與 AMP 版本如 benchmark-infer-bf16 系列也各自獨(dú)立。第四同網(wǎng)絡(luò)不同 flavor 的權(quán)重gluon、tf、pycls、fb_in22k_ft來自不同發(fā)布方、不同訓(xùn)練配方精度可差 2 到 5 個(gè)點(diǎn)pretrainedTrue拿到的具體是哪個(gè)版本以 results/model_metadata-in1k.csv 的 pretrain 標(biāo)注為準(zhǔn)。第五CIFAR/小數(shù)據(jù)集上以上全部結(jié)論不保證成立timm 未提供官方基準(zhǔn)需要自行按 tests/test_models.py 的思路補(bǔ)一組本地實(shí)測(cè)。選型的第一性原理其實(shí)很簡單先定輸入分辨率和吞吐預(yù)算再看同檔位內(nèi)誰精度高。參數(shù)量只是最后一步的校驗(yàn)項(xiàng)不是篩選條件。數(shù)據(jù)就躺在倉庫 results/ 目錄里復(fù)制走比引用博客可靠。你現(xiàn)在的部署卡在哪個(gè)檔位是延遲還是精度【免費(fèi)下載鏈接】pytorch-image-modelsThe largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResNeXT, EfficientNet, NFNet, Vision Transformer (ViT), MobileNetV4, MobileNet-V3 V2, RegNet, DPN, CSPNet, Swin Transformer, MaxViT, CoAtNet, ConvNeXt, and more項(xiàng)目地址: https://gitcode.com/GitHub_Trending/py/pytorch-image-models創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考