模型:
facebook/dino-vitb8
使用 DINO 方法训练的 Vision Transformer (ViT) 模型。它是由Mathilde Caron、Hugo Touvron、Ishan Misra、Hervé Jégou、Julien Mairal、Piotr Bojanowski、Armand Joulin在论文 Emerging Properties in Self-Supervised Vision Transformers 中提出的,并在 this repository 中首次发布。
免责声明:发布 DINO 的团队没有为此模型编写模型卡,因此这个模型卡是由 Hugging Face 团队编写的。
Vision Transformer (ViT) 是一个在自我监督方式下预训练的转换器编码器模型(类似于 BERT),在 224x224 像素的分辨率下对大量图像,即 ImageNet-1k,进行预训练。
图像以固定大小的补丁序列(8x8 分辨率)的形式呈现给模型,补丁经过线性嵌入。还在序列的开头添加了一个 [CLS] 标记,以用于分类任务。在将序列提供给 Transformer 编码器的各层之前,还添加了绝对位置嵌入。
请注意,该模型不包括任何微调的头部。
通过预训练模型,它学习到了图像的内在表示,然后可以用于提取下游任务中有用的特征:例如,如果您拥有一个带有标签的图像数据集,可以通过在预训练编码器的顶部放置一个线性层来训练一个标准分类器。通常在 [CLS] 标记的顶部放置一个线性层,因为该标记的最后隐藏状态可以被视为整个图像的表示。
您可以使用原始模型进行图像分类。查看 model hub 以寻找您感兴趣的任务的微调版本。
以下是使用此模型的方法:
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-vitb8')
model = ViTModel.from_pretrained('facebook/dino-vitb8')
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
 @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}
}