🚀 NAT (小變體)
NAT-Small是在224x224分辨率的ImageNet-1K數據集上訓練的模型。它由Hassani等人在論文Neighborhood Attention Transformer中提出,並首次在此倉庫中發佈。該模型可用於圖像分類任務,為相關領域的研究和應用提供了有力支持。
✨ 主要特性
- 基於鄰域注意力機制:NAT是一種基於鄰域注意力(NA)的分層視覺變換器。鄰域注意力是一種受限的自注意力模式,其中每個標記的感受野僅限於其最近的相鄰像素,具有高度的靈活性並保持平移等變性。
- 高效的實現方式:NA通過其擴展NATTEN在PyTorch中實現。
📦 安裝指南
除了transformers
庫,此模型還需要NATTEN包。
- Linux系統:你可以參考shi-labs.com/natten上的說明,使用預編譯的二進制文件進行安裝(只需選擇你的torch版本以獲取正確的wheel URL)。
- 其他系統:你也可以使用
pip install natten
在你的設備上進行編譯,這可能需要幾分鐘時間。Mac用戶只能選擇這種方式(沒有預編譯的二進制文件)。
更多信息請參考NATTEN的GitHub。
💻 使用示例
基礎用法
以下是如何使用此模型將COCO 2017數據集中的圖像分類為1000個ImageNet類別之一的示例:
from transformers import AutoImageProcessor, NatForImageClassification
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/nat-small-in1k-224")
model = NatForImageClassification.from_pretrained("shi-labs/nat-small-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])
更多示例請參考文檔。
📚 詳細文檔
預期用途和限制
你可以使用原始模型進行圖像分類。請查看模型中心,以查找針對你感興趣的任務進行微調的版本。
模型描述
NAT是一種基於鄰域注意力(NA)的分層視覺變換器。鄰域注意力是一種受限的自注意力模式,其中每個標記的感受野僅限於其最近的相鄰像素。NA是一種滑動窗口注意力模式,因此具有高度的靈活性並保持平移等變性。
NA通過其擴展NATTEN在PyTorch實現中得以應用。

來源
BibTeX引用
@article{hassani2022neighborhood,
title = {Neighborhood Attention Transformer},
author = {Ali Hassani and Steven Walton and Jiachen Li and Shen Li and Humphrey Shi},
year = 2022,
url = {https://arxiv.org/abs/2204.07143},
eprint = {2204.07143},
archiveprefix = {arXiv},
primaryclass = {cs.CV}
}
📄 許可證
本項目採用MIT許可證。