license: apache-2.0
tags:
基于MSN预训练的大规模视觉Transformer模型
该视觉Transformer(ViT)模型采用MSN方法进行预训练,源自论文Masked Siamese Networks for Label-Efficient Learning,作者团队包括Mahmoud Assran、Mathilde Caron等研究者,并首次发布于此代码库。
免责声明:MSN发布团队未提供本模型的说明文档,本文档由Hugging Face团队撰写。
模型描述
视觉Transformer(ViT)是一种类BERT的编码器架构。图像被分割为固定尺寸的图块序列输入模型。
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-large")
model = ViTMSNModel.from_pretrained("facebook/vit-msn-large")
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-large")
model = ViTMSNForImageClassification.from_pretrained("facebook/vit-msn-large")
...
引用文献
@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}
}