模型:
shi-labs/nat-mini-in1k-224
NAT-Mini在ImageNet-1K数据集上进行了224x224分辨率的训练。该模型是由Hassani等人在论文 Neighborhood Attention Transformer 中提出并于 this repository 首次发布的。
NAT是一种基于Neighborhood Attention(NA)的分层视觉Transformer。Neighborhood Attention是一种受限的自注意力模式,其中每个令牌的感受野仅限于其最近的相邻像素。NA是一种滑动窗口注意力模式,因此非常灵活,并保持平移等变性。
NA通过其扩展 NATTEN 在PyTorch实现中进行了实现。
您可以使用原始模型进行图像分类。查看 model hub 以寻找您感兴趣的任务的经过微调的版本。
以下是如何使用该模型将来自COCO 2017数据集的图像分类为1,000个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 # 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{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} }