英文

MobileViT(小型模型)

MobileViT模型在256x256分辨率下使用ImageNet-1k进行预训练。由Sachin Mehta和Mohammad Rastegari于 MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer 年推出,并于 this repository 年首次发布。使用的许可证是 Apple sample code license

免责声明:发布MobileViT的团队未为该模型编写模型卡片,因此此模型卡片由Hugging Face团队编写。

模型描述

MobileViT是一种轻量级、低延迟的卷积神经网络,它将MobileNetV2风格的层与使用transformer进行全局处理以替换卷积中的局部处理的新块结合起来。与ViT(Vision Transformer)一样,图像数据在被transformer层处理之前被转换为扁平化的patch。然后,将这些patch“展开”成特征图。这允许在CNN中的任何位置放置MobileViT块。MobileViT不需要任何位置嵌入。

预期用途和限制

您可以使用原始模型进行图像分类。查看 model hub 以查找您感兴趣的任务的微调版本。

使用方法

以下是如何使用此模型将COCO 2017数据集的图像分类为其中一个1,000个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

# model predicts one of the 1000 ImageNet classes
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])

目前,特征提取器和模型都支持PyTorch。

训练数据

MobileViT模型在 ImageNet-1k 上进行了预训练,该数据集包含1百万个图像和1,000个类别。

训练过程

预处理

训练仅需要基本的数据增强,即随机调整大小的裁剪和水平翻转。

为了学习多尺度表示而不需要微调,训练过程中使用了多尺度采样器,图像尺寸从以下范围随机采样:(160, 160), (192, 192), (256, 256), (288, 288), (320, 320)。

在推理时,图像被调整大小/缩放到相同的分辨率(288x288),并进行中心裁剪为256x256。

像素被归一化到范围[0, 1]。图像应以BGR像素顺序而不是RGB格式提供。

预训练