🚀 大尺寸Swin Transformer模型
Swin Transformer是一種基於Transformer架構的視覺模型。本模型在ImageNet - 21k(包含1400萬張圖像、21841個類別)數據集上進行預訓練,分辨率為224x224。它能夠有效處理圖像分類和密集識別任務,為視覺領域的研究和應用提供了強大的支持。
🚀 快速開始
Swin Transformer模型在圖像分類等視覺任務上表現出色。它通過在更深的層中合併圖像塊構建分層特徵圖,並在每個局部窗口內計算自注意力,從而實現了對輸入圖像大小的線性計算複雜度。這使得它既可以用於圖像分類,也可以作為密集識別任務的通用骨幹網絡。
✨ 主要特性
- 分層特徵圖構建:Swin Transformer通過在更深的層中合併圖像塊(灰色部分所示)來構建分層特徵圖,這有助於模型捕捉不同尺度的圖像特徵。
- 線性計算複雜度:由於僅在每個局部窗口(紅色部分所示)內計算自注意力,該模型對輸入圖像大小具有線性計算複雜度,相比之前的視覺Transformer模型,在處理大尺寸圖像時具有更高的效率。
- 通用骨幹網絡:可作為圖像分類和密集識別任務的通用骨幹網絡,具有廣泛的適用性。
來源
💻 使用示例
基礎用法
以下是如何使用該模型將COCO 2017數據集中的圖像分類到1000個ImageNet類別之一的示例代碼:
from transformers import AutoImageProcessor, SwinForImageClassification
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
processor = AutoImageProcessor.from_pretrained("microsoft/swin-base-patch4-window7-224-in22k")
model = SwinForImageClassification.from_pretrained("microsoft/swin-base-patch4-window7-224-in22k")
inputs = processor(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])
更多代碼示例請參考文檔。
📚 詳細文檔
預期用途與限制
你可以使用原始模型進行圖像分類任務。若想尋找針對特定任務進行微調的版本,請查看模型中心。
BibTeX引用信息
@article{DBLP:journals/corr/abs-2103-14030,
author = {Ze Liu and
Yutong Lin and
Yue Cao and
Han Hu and
Yixuan Wei and
Zheng Zhang and
Stephen Lin and
Baining Guo},
title = {Swin Transformer: Hierarchical Vision Transformer using Shifted Windows},
journal = {CoRR},
volume = {abs/2103.14030},
year = {2021},
url = {https://arxiv.org/abs/2103.14030},
eprinttype = {arXiv},
eprint = {2103.14030},
timestamp = {Thu, 08 Apr 2021 07:53:26 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2103-14030.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
📄 許可證
本模型採用Apache - 2.0許可證。
⚠️ 重要提示
發佈Swin Transformer的團隊並未為此模型撰寫模型卡片,此模型卡片由Hugging Face團隊編寫。