许可协议: MIT
标签:
- 视觉
- 图像分类
数据集:
- imagenet-1k
示例:
- 图片: https://huggingface.co/datasets/mishig/sample_images/resolve/main/tiger.jpg
示例标题: 老虎
- 图片: https://huggingface.co/datasets/mishig/sample_images/resolve/main/teapot.jpg
示例标题: 茶壶
- 图片: https://huggingface.co/datasets/mishig/sample_images/resolve/main/palace.jpg
示例标题: 宫殿
NAT (迷你版)
NAT-Mini 是在 ImageNet-1K 数据集上以 224x224 分辨率训练的模型。
该模型由 Hassani 等人在论文 Neighborhood Attention Transformer 中提出,并首次发布于 此代码库。
模型描述
NAT 是一种基于邻域注意力(Neighborhood Attention, NA)的分层视觉 Transformer。
邻域注意力是一种受限的自注意力模式,其中每个 token 的感受野仅限于其最近的相邻像素。
NA 是一种滑动窗口注意力模式,因此具有高度灵活性并保持平移等变性。
NA 通过其扩展库 NATTEN 在 PyTorch 中实现。

来源
预期用途与限制
您可以将原始模型用于图像分类任务。请访问 模型中心 查找您感兴趣任务的微调版本。
示例
以下是如何使用此模型将 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-mini-in1k-224")
model = NatForImageClassification.from_pretrained("shi-labs/nat-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("预测类别:", model.config.id2label[predicted_class_idx])
更多示例请参阅 文档。
依赖要求
除 transformers 外,此模型需要 NATTEN 包。
Linux 用户可参考 shi-labs.com/natten 获取预编译二进制文件的安装说明(只需选择您的 torch 版本以获取正确的 wheel 文件 URL)。
您也可以使用 pip install natten
在本地编译,这可能需要几分钟时间。
Mac 用户仅支持后者(无预编译二进制文件)。
更多信息请参考 NATTEN 的 GitHub。
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}
}