模型:
facebook/dino-vits8
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 中首次引入,并于 this repository 首次发布。
免责声明:DINO 团队没有为这个模型编写模型卡片,因此这个模型卡片是由Hugging Face团队编写的。
Vision Transformer (ViT) 是一个在自监督方式下预训练的转换器编码模型(类似于BERT),它在分辨率为224x224像素的大量图像数据集上进行了训练,例如ImageNet-1k。
图像被呈现给模型作为一系列固定大小的patches(分辨率为8x8),这些patches被线性嵌入。此外,在输入序列的开头添加了一个[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-vits8')
model = ViTModel.from_pretrained('facebook/dino-vits8')
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}
}