🚀 DiNAT (mini variant)
DiNAT-Mini 是在 ImageNet-1K 數據集上以 224x224 分辨率進行訓練的模型。它由 Hassani 等人在論文 Dilated Neighborhood Attention Transformer 中提出,並首次在 此倉庫 中發佈。該模型可用於圖像分類任務,為相關領域的研究和應用提供了有力支持。
✨ 主要特性
- 基於 Neighborhood Attention:DiNAT 是一種基於鄰域注意力(Neighborhood Attention,NA)及其擴張變體(DiNA)的分層視覺變換器。鄰域注意力是一種受限的自注意力模式,每個令牌的感受野僅限於其最近的相鄰像素。
- 滑動窗口注意力模式:NA 和 DiNA 屬於滑動窗口注意力模式,具有高度的靈活性,並能保持平移等變性。
- PyTorch 實現:通過 NATTEN 包提供了 PyTorch 實現。
📦 安裝指南
除了 transformers
庫,此模型還需要 NATTEN 包。
- Linux 用戶:可參考 shi-labs.com/natten 上的說明,使用預編譯的二進制文件進行安裝(只需選擇合適的 PyTorch 版本以獲取正確的 wheel URL)。
- 其他用戶:也可以使用
pip install natten
在本地設備上進行編譯安裝,這可能需要幾分鐘時間。Mac 用戶只能選擇此方式(沒有預編譯的二進制文件)。
更多信息請參考 NATTEN 的 GitHub 倉庫。
💻 使用示例
基礎用法
以下是如何使用該模型將 COCO 2017 數據集中的圖像分類為 1000 個 ImageNet 類別之一的示例:
from transformers import AutoImageProcessor, DinatForImageClassification
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 = AutoImageProcessor.from_pretrained("shi-labs/dinat-mini-in1k-224")
model = DinatForImageClassification.from_pretrained("shi-labs/dinat-mini-in1k-224")
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])
更多示例請參考 文檔。
📚 詳細文檔
模型描述
DiNAT 是一種基於鄰域注意力(NA)及其擴張變體(DiNA)的分層視覺變換器。鄰域注意力是一種受限的自注意力模式,其中每個令牌的感受野僅限於其最近的相鄰像素。因此,NA 和 DiNA 是滑動窗口注意力模式,具有高度的靈活性,並能保持平移等變性。
來源
預期用途和限制
可以使用原始模型進行圖像分類。請查看 模型中心 以查找針對你感興趣的任務進行微調的版本。
BibTeX 引用和引用信息
@article{hassani2022dilated,
title = {Dilated Neighborhood Attention Transformer},
author = {Ali Hassani and Humphrey Shi},
year = 2022,
url = {https://arxiv.org/abs/2209.15001},
eprint = {2209.15001},
archiveprefix = {arXiv},
primaryclass = {cs.CV}
}
📄 許可證
本項目採用 MIT 許可證。
信息表格
屬性 |
詳情 |
模型類型 |
基於鄰域注意力及其擴張變體的分層視覺變換器 |
訓練數據 |
ImageNet-1K |
應用場景 |
圖像分類 |