🚀 视觉变换器(使用DINO训练的基础尺寸模型,补丁大小为8)
这是一个使用DINO方法训练的视觉变换器(ViT)模型,可用于图像特征学习和下游任务。
🚀 快速开始
视觉变换器(ViT)是一个基于Transformer编码器的模型(类似BERT),它以自监督的方式在大量图像集合(即ImageNet - 1k,分辨率为224x224像素)上进行预训练。你可以使用这个原始模型进行图像分类,也可以在模型中心查找针对你感兴趣的任务进行微调的版本。
✨ 主要特性
- 基于Transformer架构,在大规模图像数据上自监督预训练。
- 以固定大小的图像补丁(8x8分辨率)作为输入,学习图像的内部表示。
- 模型不包含任何微调头,可灵活用于下游任务。
📚 详细文档
模型描述
视觉变换器(ViT)是一个Transformer编码器模型(类似BERT),它以自监督的方式在大量图像集合(即ImageNet - 1k,分辨率为224x224像素)上进行预训练。
图像以固定大小的补丁序列(分辨率8x8)的形式输入到模型中,这些补丁会进行线性嵌入。同时,会在序列开头添加一个[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-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
📄 许可证
本模型采用Apache - 2.0许可证。
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}
}
信息表格
属性 |
详情 |
模型类型 |
视觉变换器(ViT),使用DINO方法训练 |
训练数据 |
ImageNet - 1k |
⚠️ 重要提示
发布DINO的团队没有为这个模型编写模型卡片,此模型卡片由Hugging Face团队编写。