英文

使用DINO训练的Vision Transformer(基本规模模型,patch尺寸16)

这是使用DINO方法训练的Vision Transformer(ViT)模型。DINO方法由Mathilde Caron、Hugo Touvron、Ishan Misra、Hervé Jégou、Julien Mairal、Piotr Bojanowski、Armand Joulin等人在论文《Emerging Properties in Self-Supervised Vision Transformers》中提出,并首次在这个代码库中发布。

声明:DINO团队没有为此模型编写模型卡片,因此本模型卡片由Hugging Face团队撰写。

模型描述

Vision Transformer(ViT)是一种基于Transformer编码器的预训练模型(类似于BERT),在自监督方式下使用大量图像(ImageNet-1k)进行训练,分辨率为224x224像素。

图像被呈现给模型作为一系列固定大小的patch(尺寸为16x16),这些patch被线性嵌入。在序列的开头还加入了一个[CLS]标记,用于分类任务。在将序列输入Transformer编码器的层之前,还添加了绝对位置编码。

请注意,该模型不包括任何经过精调的头部。

通过预训练模型,它学习了图像的内部表示,可以用于提取用于下游任务的特征:例如,如果您有一个带标签的图像数据集,可以在预训练编码器的顶部放置一个线性层来训练一个标准分类器。通常将线性层放置在[CLS]标记的顶部,因为该标记的最后隐藏状态可以看作是整个图像的表示。

使用目的和限制

您可以使用原始模型进行图像分类。在模型库中查找您感兴趣的任务的经过精调的版本,请参考模型中心

使用方法

以下是如何使用此模型的示例:

from transformers import ViTImageProcessor, ViTModel
from PIL import Image
import requests

url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)

processor = ViTImageProcessor.from_pretrained('facebook/dino-vitb16')
model = ViTModel.from_pretrained('facebook/dino-vitb16')

inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state

BibTeX条目和引用信息

@article{DBLP:journals/corr/abs-2104-14294,
  author    = {Mathilde Caron and
               Hugo Touvron and
               Ishan Misra and
               Herv{\'{e}} J{\'{e}}gou and
               Julien Mairal and
               Piotr Bojanowski and
               Armand Joulin},
  title     = {Emerging Properties in Self-Supervised Vision Transformers},
  journal   = {CoRR},
  volume    = {abs/2104.14294},
  year      = {2021},
  url       = {https://arxiv.org/abs/2104.14294},
  archivePrefix = {arXiv},
  eprint    = {2104.14294},
  timestamp = {Tue, 04 May 2021 15:12:43 +0200},
  biburl    = {https://dblp.org/rec/journals/corr/abs-2104-14294.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}