🚀 視覺變換器(基礎大小模型,補丁大小16),使用DINO方法訓練
本項目是使用DINO方法訓練的視覺變換器(ViT)模型。該模型在論文 自監督視覺變換器中的新興特性 中被提出,論文作者包括Mathilde Caron、Hugo Touvron、Ishan Misra、Hervé Jégou、Julien Mairal、Piotr Bojanowski、Armand Joulin,模型最初在 此倉庫 中發佈。
聲明:發佈DINO的團隊並未為此模型撰寫模型卡片,此模型卡片由Hugging Face團隊編寫。
✨ 主要特性
- 基於Transformer架構,在大規模圖像數據集上進行自監督預訓練。
- 可用於圖像分類等下游任務,通過在預訓練編碼器上添加線性層即可訓練標準分類器。
📚 詳細文檔
模型描述
視覺變換器(ViT)是一種類似BERT的Transformer編碼器模型,它以自監督的方式在大量圖像(即ImageNet - 1k)上進行預訓練,圖像分辨率為224x224像素。
圖像以固定大小的補丁序列(分辨率為16x16)的形式輸入到模型中,並進行線性嵌入。同時,會在序列開頭添加一個 [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
📄 許可證
本項目採用Apache - 2.0許可證。
📚 引用信息
@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 |