🚀 MobileViT(小型模型)
MobileViT是一個輕量級、低延遲的卷積神經網絡,結合了MobileNetV2風格的層與新的模塊,使用Transformer將卷積中的局部處理替換為全局處理,可用於圖像分類任務。
🚀 快速開始
你可以使用原始模型進行圖像分類。查看模型中心,尋找針對你感興趣的任務進行微調的版本。
以下是如何使用該模型將COCO 2017數據集中的圖像分類為1000個ImageNet類別之一的示例:
from transformers import MobileViTFeatureExtractor, MobileViTForImageClassification
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = MobileViTFeatureExtractor.from_pretrained("apple/mobilevit-small")
model = MobileViTForImageClassification.from_pretrained("apple/mobilevit-small")
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
目前,特徵提取器和模型都支持PyTorch。
✨ 主要特性
- 輕量級、低延遲的卷積神經網絡,結合了MobileNetV2風格的層與新模塊。
- 使用Transformer將卷積中的局部處理替換為全局處理。
- 圖像數據在經過Transformer層處理前會轉換為扁平的塊,處理後再恢復為特徵圖。
- 無需任何位置嵌入。
📚 詳細文檔
模型描述
MobileViT是一種輕量級、低延遲的卷積神經網絡,它將MobileNetV2風格的層與一個新的模塊相結合,該模塊使用Transformer將卷積中的局部處理替換為全局處理。與ViT(視覺Transformer)一樣,圖像數據在經過Transformer層處理之前會被轉換為扁平的塊。之後,這些塊會被“解扁平”回特徵圖。這使得MobileViT模塊可以放置在CNN內的任何位置。MobileViT不需要任何位置嵌入。
預期用途與限制
你可以使用原始模型進行圖像分類。查看模型中心,尋找針對你感興趣的任務進行微調的版本。
📦 安裝指南
文檔未提及安裝步驟,故跳過該章節。
💻 使用示例
基礎用法
from transformers import MobileViTFeatureExtractor, MobileViTForImageClassification
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = MobileViTFeatureExtractor.from_pretrained("apple/mobilevit-small")
model = MobileViTForImageClassification.from_pretrained("apple/mobilevit-small")
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
高級用法
文檔未提及高級用法相關代碼,故跳過該部分。
🔧 技術細節
訓練數據
MobileViT模型在ImageNet-1k上進行了預訓練,該數據集由100萬張圖像和1000個類別組成。
訓練過程
預處理
訓練僅需要基本的數據增強,即隨機調整大小裁剪和水平翻轉。
為了在不進行微調的情況下學習多尺度表示,訓練期間使用了多尺度採樣器,圖像大小從以下範圍隨機採樣:(160, 160)、(192, 192)、(256, 256)、(288, 288)、(320, 320)。
在推理時,圖像會被調整大小/重新縮放至相同的分辨率(288x288),並在256x256處進行中心裁剪。
像素被歸一化到[0, 1]範圍。圖像預期為BGR像素順序,而非RGB。
預訓練
MobileViT網絡在8個NVIDIA GPU上的ImageNet-1k上從頭開始訓練300個epoch,有效批量大小為1024,學習率預熱3000步,隨後進行餘弦退火。還使用了標籤平滑交叉熵損失和L2權重衰減。訓練分辨率從160x160到320x320不等,使用多尺度採樣。
評估結果
模型 |
ImageNet top-1準確率 |
ImageNet top-5準確率 |
參數數量 |
URL |
MobileViT-XXS |
69.0 |
88.9 |
1.3 M |
https://huggingface.co/apple/mobilevit-xx-small |
MobileViT-XS |
74.8 |
92.3 |
2.3 M |
https://huggingface.co/apple/mobilevit-x-small |
MobileViT-S |
78.4 |
94.1 |
5.6 M |
https://huggingface.co/apple/mobilevit-small |
BibTeX引用和引用信息
@inproceedings{vision-transformer,
title = {MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer},
author = {Sachin Mehta and Mohammad Rastegari},
year = {2022},
URL = {https://arxiv.org/abs/2110.02178}
}
📄 許可證
本項目使用的許可證是Apple示例代碼許可證。