Als Markdown anzeigen

Swin Transformer

Swin Transformer V1 ist ein hierarchischer Vision Transformer, der Attention innerhalb verschobener lokaler Fenster statt über das gesamte Bild berechnet. LibreYOLO stellt vier Größen für die Bildklassifizierung bereit.

Aufgaben
classification
Größen
t, s, b, l at 224 px
Installation
pip install libreyolo
Supportstufe
Nur Inferenz, seit v1.5.0. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
Upstream
Swin Transformer von Microsoft Research, MIT. Publikation, Quelle
Lizenzen
Code Apache-2.0, Gewichte MIT. Kommerzielle Nutzung

Installation

Swin benötigt kein optionales Extra. Alle Importe sind in der Basisinstallation enthalten.

bash
pip install libreyolo

Vorhersage

Die Gewichte werden bei der ersten Verwendung von Hugging Face heruntergeladen und lokal zwischengespeichert.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreSwint-cls.pt")result = model(SAMPLE_IMAGE, save=True) probs = result.probsprint(probs.top1, probs.top1conf)print(probs.top5, probs.top5conf)
CLI
libreyolo predict model=LibreSwint-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

Ein Klassifikator gibt result.probs statt result.boxes zurück. top1 und top5 enthalten Klassenindizes, top1conf und top5conf die zugehörigen Konfidenzwerte. Jede Größe ist auf eine Eingabe von 224 px festgelegt, da die letzte Attention-Stufe für diese Auflösung aufgebaut ist. Vorhersage, Validierung und Export lösen einen Fehler aus, wenn du einen anderen Wert für imgsz übergibst. Unter Vorhersage findest du Informationen zu Quellen, Streaming und Ergebnisverarbeitung.

Varianten

Die vier Größen von Tiny bis Large basieren auf demselben Shifted-Window-Tower und unterscheiden sich in Embedding-Breite und Stufentiefe. Large wurde auf ImageNet-22k vortrainiert und auf ImageNet-1k feinabgestimmt. Die anderen drei wurden direkt auf ImageNet-1k trainiert. LibreYOLO stellt diese Familie nur für die Inferenz bereit. Unterstützt werden Vorhersage, Validierung im ImageNet-Stil mit Top-1 und Top-5 sowie Export. Das Upstream-Trainingsrezept für ImageNet ist nicht implementiert.

Validierung

val() arbeitet mit einem Split im ImageFolder-Stil, also einem Verzeichnis mit den Unterordnern train/ und val/ und je einem Ordner pro Klasse. Die Methode gibt die Genauigkeit für Top-1 und Top-5 zurück.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwint-cls.pt") # data ist ein Verzeichnis mit train/- und val/-Splits aus Klassenordnern# (ImageFolder-Layout), keine Datensatz-YAML-Datei.metrics = model.val(data="imagenet-1k/") print(metrics["metrics/accuracy_top1"])print(metrics["metrics/accuracy_top5"])
CLI
libreyolo val model=LibreSwint-cls.pt data=imagenet-1k/

Validierung und INT8-Kalibrierung verwenden die Auswertungstransformation der Familie. Die Exportmetadaten speichern norm_mean, norm_std und resize_mode; ältere Artefakte greifen auf die Familienwerte zurück. Kalibrierungsvorverarbeiter geben das erforderliche CHW-Array und das Verhältnis zurück.

Export

AufgabeONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
ClassificationClassification to ONNX: unterstütztClassification to TorchScript: unterstütztClassification to ExecuTorch: unterstütztClassification to TensorRT: unterstütztClassification to OpenVINO: unterstütztClassification to Paddle: nicht unterstütztClassification to MNN: nicht unterstütztClassification to RKNN: nicht unterstütztClassification to ncnn: unterstütztClassification to TFLite: nicht unterstütztClassification to CoreML: nicht unterstütztClassification to Core AI: nicht unterstützt

Ein exportiertes Artefakt wird über seine Dateiendung wieder durch LibreYOLO() geladen. Eine .onnx- oder .engine-Datei verhält sich daher wie ein Checkpoint und gibt dasselbe Results-Objekt zurück. Unter Export findest du die Argumente, die jedes Format akzeptiert, sowie zusätzliche Argumente einzelner Formate.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwint-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreSwint-cls.pt format=onnxlibreyolo export model=LibreSwint-cls.pt format=tensorrt half=True
Exportierte Datei verwenden
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Die Factory leitet anhand der Dateiendung weiter, daher wird ein exportiertes Artefakt# wie jeder Checkpoint geladen und gibt dasselbe Results-Objekt zurück.model = LibreYOLO("LibreSwint-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)

Checkpoints

Alle für diese Familie veröffentlichten Gewichtsdateien.

DateiEingabe (px)Lizenz der Gewichte
Classification
LibreSwint-cls.pt224mit
LibreSwins-cls.pt224mit
LibreSwinb-cls.pt224mit
LibreSwinl-cls.pt224mit

Jede oben aufgeführte Datei ist heute in der LibreYOLO-Organisation verfügbar und wird bei der ersten Verwendung heruntergeladen.

Lizenzierung

Prüfe die Lizenz im Hugging-Face-Repository der konkreten Gewichte, die du herunterlädst. Jeder Checkpoint in der LibreYOLO-Organisation hat eine Lizenz, und sie ist innerhalb einer Familie nicht immer gleich. Dieses Repository ist die maßgebliche Quelle. Die Zusammenfassung unten beschreibt den Stand bei der letzten Verifizierung dieser Seite.

Dies ist eine Beschreibung der beteiligten Lizenzen und keine Rechtsberatung. Wenn die Antwort kommerziell relevant ist, lies die Lizenzen selbst und hole eigenen Rechtsrat ein.

Originalarbeit
Swin Transformer, Microsoft Research
Upstream-Lizenz
MIT
LibreYOLO-Code
MIT
Gewichte
MIT, erneut unter huggingface.co/LibreYOLO veröffentlicht
Einordnung
MIT is a permissive license, so these weights can be used in commercial and closed-source products. It asks only that you keep the license text and copyright notice with any copy you redistribute, and it carries no explicit patent grant. LibreYOLO's runtime code for this family is a derived port of the Apache-2.0 timm Swin implementation (Ross Wightman, huggingface/pytorch-image-models), kept parameter-name compatible so the tensors load unchanged; the four released Tiny/Small/Base/Large checkpoints are Microsoft's own MIT-licensed patch-4/window-7 classifiers. Code and weights therefore sit under two different permissive licenses, both of which allow commercial use.

Zitieren

@inproceedings{liu2021Swin,
  title={Swin Transformer: Hierarchical Vision Transformer using Shifted Windows},
  author={Liu, Ze and Lin, Yutong and Cao, Yue and Hu, Han and Wei, Yixuan and Zhang, Zheng and Lin, Stephen and Guo, Baining},
  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
  year={2021}
}

Aus dem Zitierblock der Autoren unter github.com/microsoft/Swin-Transformer#citing-swin-transformer kopiert.

Mit LibreYOLO v1.6.0 verifiziert. Supporttabellen, Checkpoints und Benchmarkwerte auf dieser Seite werden aus der veröffentlichten Bibliothek und den publizierten Gewichten generiert und nicht von Hand geschrieben.

Wähle eine Variante oder die Familienübersicht und dann einen Block für Details. Öffne das vollständige Diagramm zum Zoomen oder Herunterladen als SVG und PNG. Die Diagramme sind auf Englisch.