戰(zhàn)教程:如何用單GPU一行命令快速評(píng)估 ImageNet 圖像分類準(zhǔn)確率)
LeViT 推理實(shí)戰(zhàn)教程如何用單GPU一行命令快速評(píng)估 ImageNet 圖像分類準(zhǔn)確率【免費(fèi)下載鏈接】LeViTLeViT a Vision Transformer in ConvNets Clothing for Faster Inference項(xiàng)目地址: https://gitcode.com/gh_mirrors/le/LeViT關(guān)鍵詞LeViT 推理、Vision Transformer 圖像分類、ImageNet 評(píng)估、單 GPU 部署LeViT 是一款穿著卷積外衣的視覺 TransformerVision Transformer由 Meta AI 提出核心目標(biāo)就是在保持高精度的同時(shí)實(shí)現(xiàn)更快的圖像分類推理。本文帶你用最少的步驟在單 GPU 上用一條命令完成 LeViT 預(yù)訓(xùn)練模型在 ImageNet 驗(yàn)證集上的準(zhǔn)確率評(píng)估幫你快速完成部署驗(yàn)證。 為什么選擇 LeViT 做圖像分類傳統(tǒng) Vision Transformer如 DeiT精度高但推理速度往往跟不上。LeViT 通過卷積下采樣 分塊注意力的混合結(jié)構(gòu)在速度與精度之間取得了出色的平衡模型Acc1Acc5FLOPs參數(shù)量LeViT-128S76.692.9305M7.8MLeViT-12878.694.0406M9.2MLeViT-19280.094.7658M11MLeViT-25681.695.41120M19MLeViT-38482.696.02353M39M在 GPU 上LeViT-256 能以約5000 張圖/秒的吞吐達(dá)到 81.6% 的 Top-1 精度遠(yuǎn)超同精度下的 EfficientNet 系列。上圖LeViT 家族與 EfficientNet、DeiT 在單 CPU 核與單 GPU 上的 ImageNet Top-1 準(zhǔn)確率 vs. 吞吐對(duì)比綠色曲線即 LeViT 系列。 環(huán)境準(zhǔn)備最快配置方法1?? 克隆代碼倉庫git clone https://gitcode.com/gh_mirrors/le/LeViT cd LeViT2?? 安裝依賴需要PyTorch 1.7.0和torchvision 0.8.1以及圖像模型庫timmconda install -c pytorch pytorch torchvision pip install timm3?? 準(zhǔn)備 ImageNet 數(shù)據(jù)將 ImageNet 2012 解壓為標(biāo)準(zhǔn) ImageFolder 目錄結(jié)構(gòu)train/與val/兩個(gè)子目錄每個(gè)類別一個(gè)文件夾/path/to/imagenet/ train/ class1/ class2/ val/ class1/ class2/ 只做評(píng)估的話只需要val/驗(yàn)證集即可。 單 GPU 一行命令評(píng)估 ImageNet 準(zhǔn)確率這是本文的核心操作。進(jìn)入項(xiàng)目根目錄后執(zhí)行python main.py --eval --model LeViT_256 --data-path /path/to/imagenet參數(shù)含義很簡(jiǎn)單--eval只評(píng)估不訓(xùn)練對(duì)應(yīng) main.py 中args.eval分支直接調(diào)用 engine.py 里的evaluate()函數(shù)--model模型規(guī)格可選LeViT_128S / LeViT_128 / LeViT_192 / LeViT_256 / LeViT_384模型定義見 levit_c.py--data-path你的 ImageNet 數(shù)據(jù)目錄評(píng)估完成后你會(huì)看到類似這樣的輸出* Acc1 81.636 Acc5 95.424 loss 0.750這與官方公布的 LeViT-256 精度81.6 / 95.4基本一致說明模型與部署環(huán)境都工作正常 ?。 如何挑選適合你的 LeViT 模型場(chǎng)景推薦模型理由移動(dòng)端 / 極致低延遲LeViT-128S僅 7.8M 參數(shù)305M FLOPs通用分類任務(wù)推薦起步LeViT-256精度/速度最佳平衡點(diǎn)追求最高精度LeViT-384Top-1 達(dá) 82.6%把命令中的--model換成對(duì)應(yīng)規(guī)格即可例如評(píng)估輕量版python main.py --eval --model LeViT_128S --data-path /path/to/imagenet? 進(jìn)階從評(píng)估走向訓(xùn)練驗(yàn)證完推理效果后如果你想用自己的數(shù)據(jù)微調(diào)或從頭訓(xùn)練項(xiàng)目同樣內(nèi)置了完整訓(xùn)練流程基于 engine.py、losses.py 的知識(shí)蒸餾損失python -m torch.distributed.launch --nproc_per_node8 --use_env \ main.py --model LeViT_256 --data-path /path/to/imagenet \ --output_dir /path/to/save多節(jié)點(diǎn)訓(xùn)練則可以通過 run_with_submitit.py 提交 Slurm 作業(yè)。? 小結(jié)LeViT 用卷積做下采樣、注意力做特征交互是兼顧速度與精度的圖像分類利器單 GPU 一行python main.py --eval即可在 ImageNet 上驗(yàn)證 81.6% Top-1 的預(yù)訓(xùn)練精度按需切換LeViT_128S ~ LeViT_384五個(gè)規(guī)格覆蓋從移動(dòng)端到高精度服務(wù)器場(chǎng)景現(xiàn)在你可以把 LeViT 快速部署到自己的圖像分類業(yè)務(wù)中了 【免費(fèi)下載鏈接】LeViTLeViT a Vision Transformer in ConvNets Clothing for Faster Inference項(xiàng)目地址: https://gitcode.com/gh_mirrors/le/LeViT創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考