🚀 Data2Vec-Vision(大型模型,在ImageNet-1k上微調)
Data2Vec-Vision是一個基於BEiT模型的圖像分類模型,它以自監督的方式進行預訓練,並在ImageNet-1k(120萬張圖像,1000個類別)上進行了微調,分辨率為224x224。該模型由Alexei Baevski、Wei-Ning Hsu等人提出,相關論文為data2vec: A General Framework for Self-supervised Learning in Speech, Vision and Language,並首次發佈於this repository。
🚀 快速開始
你可以使用該原始模型進行圖像分類。可在模型中心查找針對你感興趣任務的微調版本。
代碼示例
以下是如何使用此模型將COCO 2017數據集中的圖像分類為1000個ImageNet類別之一的示例:
from transformers import BeitFeatureExtractor, Data2VecVisionForImageClassification
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = BeitFeatureExtractor.from_pretrained('facebook/data2vec-vision-large-ft1k')
model = Data2VecVisionForImageClassification.from_pretrained('facebook/data2vec-vision-large-ft1k')
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
目前,特徵提取器和模型都支持PyTorch。
✨ 主要特性
- 跨模態自監督學習:data2vec框架使用相同的學習方法應用於語音、NLP或計算機視覺,朝著通用自監督學習邁進了一步。
- 預測上下文潛在表示:與預測特定模態目標不同,data2vec預測包含整個輸入信息的上下文潛在表示。
- 高性能表現:在語音識別、圖像分類和自然語言理解的主要基準測試中展示了新的技術水平或與主流方法相當的性能。
📦 安裝指南
文檔未提及安裝步驟,可參考相關庫(如transformers
)的官方安裝指南進行安裝。
💻 使用示例
基礎用法
from transformers import BeitFeatureExtractor, Data2VecVisionForImageClassification
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = BeitFeatureExtractor.from_pretrained('facebook/data2vec-vision-large-ft1k')
model = Data2VecVisionForImageClassification.from_pretrained('facebook/data2vec-vision-large-ft1k')
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
📚 詳細文檔
預訓練方法
更多信息,請查看官方論文。
摘要
自監督學習的總體思想在不同模態之間是相同的,但實際的算法和目標卻有很大差異,因為它們是針對單一模態開發的。為了更接近通用自監督學習,我們提出了data2vec框架,該框架對語音、NLP或計算機視覺使用相同的學習方法。其核心思想是在自蒸餾設置中,基於輸入的掩碼視圖,使用標準的Transformer架構預測完整輸入數據的潛在表示。與預測本質上是局部的特定模態目標(如單詞、視覺標記或人類語音單元)不同,data2vec預測包含整個輸入信息的上下文潛在表示。在語音識別、圖像分類和自然語言理解的主要基準測試上的實驗表明,該方法達到了新的技術水平或與主流方法具有相當的性能。
預期用途和限制
你可以使用原始模型進行圖像分類。可在模型中心查找針對你感興趣任務的微調版本。
訓練數據
BEiT模型在ImageNet-1k上進行了預訓練和微調,該數據集包含120萬張圖像和1000個類別。
訓練過程
預處理
訓練/驗證期間圖像預處理的確切細節可在此處找到。
圖像被調整大小/重新縮放至相同分辨率(224x224),並在RGB通道上使用均值(0.5, 0.5, 0.5)和標準差(0.5, 0.5, 0.5)進行歸一化。
預訓練
所有與預訓練相關的超參數,請參考原始論文和原始代碼庫。
評估結果
關於幾個圖像分類基準的評估結果,請參考原始論文的表1。請注意,對於微調,使用更高的分辨率可獲得最佳結果。當然,增加模型大小會提高性能。
我們在ImageNet1K
上對模型進行了評估,獲得了top-1準確率 = 86.50,而原始論文中報告的top-1準確率為86.2。
如果你想重現我們的評估過程,可以使用此Colab筆記本。
BibTeX引用和引用信息
@misc{https://doi.org/10.48550/arxiv.2202.03555,
doi = {10.48550/ARXIV.2202.03555},
url = {https://arxiv.org/abs/2202.03555},
author = {Baevski, Alexei and Hsu, Wei-Ning and Xu, Qiantong and Babu, Arun and Gu, Jiatao and Auli, Michael},
keywords = {Machine Learning (cs.LG), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {data2vec: A General Framework for Self-supervised Learning in Speech, Vision and Language},
publisher = {arXiv},
year = {2022},
copyright = {arXiv.org perpetual, non-exclusive license}
}
📄 許可證
本模型使用Apache-2.0許可證。