license: apache-2.0
tags:
基于MSN预训练的视觉Transformer(小尺寸模型)
该视觉Transformer(ViT)模型采用MSN方法进行预训练,由Mahmoud Assran、Mathilde Caron等人在论文《Masked Siamese Networks for Label-Efficient Learning》中提出,并首发于此代码库。
免责声明:MSN发布团队未编写此模型卡片,本卡片由Hugging Face团队撰写。
模型描述
视觉Transformer(ViT)是一种类似BERT的Transformer编码器模型,图像以固定尺寸的图块序列形式输入模型。
MSN提出了一种联合嵌入架构,将掩码图块的原型与未掩码图块进行匹配。通过这种设置,该方法在少样本和极少量样本场景下表现出卓越性能。
通过预训练,模型可学习图像的内在表征,进而提取适用于下游任务的特征。例如,若您拥有带标注的图像数据集,可在预训练编码器顶部添加线性层来训练标准分类器。
用途与限制
您可将该原始模型用于图像分类等下游任务。请访问模型中心查看不同版本的MSN预训练模型。当训练集标注样本较少时,该模型尤为适用。
使用方法
以下是使用该主干编码器的示例:
from transformers import AutoFeatureExtractor, ViTMSNModel
import torch
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 = AutoFeatureExtractor.from_pretrained("facebook/vit-msn-small")
model = ViTMSNModel.from_pretrained("facebook/vit-msn-small")
inputs = feature_extractor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
若需微调图像分类任务,请使用ViTMSNForImageClassification
类:
from transformers import AutoFeatureExtractor, ViTMSNForImageClassification
import torch
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 = AutoFeatureExtractor.from_pretrained("facebook/vit-msn-small")
model = ViTMSNForImageClassification.from_pretrained("facebook/vit-msn-small")
...
引用
@article{assran2022masked,
title={Masked Siamese Networks for Label-Efficient Learning},
author={Assran, Mahmoud, and Caron, Mathilde, and Misra, Ishan, and Bojanowski, Piotr, and Bordes, Florian and Vincent, Pascal, and Joulin, Armand, and Rabbat, Michael, and Ballas, Nicolas},
journal={arXiv preprint arXiv:2204.07141},
year={2022}
}