license: apache-2.0
tags:
基于MSN预训练的视觉Transformer(基础尺寸模型,4x4分块)
该视觉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-base-4")
model = ViTMSNModel.from_pretrained("facebook/vit-msn-base-4")
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-base-4")
model = ViTMSNForImageClassification.from_pretrained("facebook/vit-msn-base-4")
...
引用文献
@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}
}