模型:
shi-labs/dinat-base-in1k-224
DiNAT-Base是在ImageNet-1K数据集上以224x224分辨率进行训练的模型。该模型在Hassani等人的论文 Dilated Neighborhood Attention Transformer 中提出,并于 this repository 首次发布。
DiNAT是一种基于邻域注意力(Neighborhood Attention,简称NA)及其扩张形式(DiNA)的分层视觉变换模型。邻域注意力是一种受限制的自注意力模式,其中每个标记的感受野仅限于其最近的相邻像素。NA和DiNA因此是滑动窗口的注意力模式,因此具有高度的灵活性并保持平移等变性。
它们通过 NATTEN 软件包提供PyTorch实现。
您可以使用原始模型进行图像分类。请参阅 model hub 以查找在您感兴趣的任务上进行细调的模型版本。
以下是如何使用该模型将COCO 2017数据集中的图像分类为1,000个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-base-in1k-224")
model = DinatForImageClassification.from_pretrained("shi-labs/dinat-base-in1k-224")
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
# model predicts one of the 1000 ImageNet classes
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
有关更多示例,请参阅 documentation 。
除了transformers,此模型还需要 NATTEN 软件包。
如果您使用的是Linux系统,可以参考 shi-labs.com/natten 以获取使用预编译二进制文件的安装说明(只需选择您的torch构建以获取正确的wheel URL)。
您还可以在设备上使用pip install natten进行编译,这可能需要几分钟时间。Mac用户只有后一种选项(没有预编译的二进制文件)。
有关更多信息,请参阅 NATTEN's GitHub 。
@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}
}