Startseite>Programmierbezogen>Python

Solo-Learn

Eine Bibliothek selbst überprüfter Methoden für unbeaufsichtigte visuelle Repräsentation, die durch Pytorch-Blitze betrieben wird. Wir wollen SOTA-selbstverletzte Methoden in einer vergleichbaren Umgebung bereitstellen und gleichzeitig Trainingstricks implementieren. Die Bibliothek ist in sich geschlossen, aber es ist möglich, die Modelle außerhalb des Solo-Learn zu verwenden. Weitere Details in unserer Zeitung .


Nachricht


Roadmap und Hilfe benötigen


Methoden verfügbar


Zusätzliches Geschmack

Rückgrat

Daten

Auswertung

Trainingsstricks

Protokollierung


Anforderungen

Optional :


Installation

Zuerst klonen Sie das Repo.

Um Solo-Learn mit Dali und/oder UMAP-Unterstützung zu installieren, verwenden Sie dann:

pip3 install .[dali,umap,h5] --extra-index-url https://developer.download.nvidia.com/compute/redist

Wenn kein Dali/UMAP/H5 -Unterstützung benötigt wird, kann das Repository als:

pip3 install .

Für die lokale Entwicklung:

pip3 install -e .[umap,h5]
# Make sure you have pre-commit hooks installed
pre-commit install

Hinweis: Wenn Sie Probleme mit Dali haben, installieren Sie es nach ihrem Leitfaden.

Hinweis 2: Erwägen Sie, Kissen-SIMD für bessere Ladezeiten zu installieren, wenn Sie Dali nicht verwenden.

Anmerkung 3: bald auf Pip.


Ausbildung

Folgen Sie zum Vorab -Rückgrat einer der vielen Bash -Dateien in scripts/pretrain/ . Wir verwenden jetzt Hydra, um die Konfigurationsdateien zu verarbeiten, daher ist die gemeinsame Syntax so etwas wie:

python3 main_pretrain.py 
    # path to training script folder
    --config-path scripts/pretrain/imagenet-100/ 
    # training config name
    --config-name barlow.yaml
    # add new arguments (e.g. those not defined in the yaml files)
    # by doing ++new_argument=VALUE
    # pytorch lightning's arguments can be added here as well.

Danach folgen Sie für die lineare Offline -Bewertung den Beispielen in scripts/linear oder scripts/finetune um das gesamte Rückgrat zu füllen.

Für die K-NN-Bewertung und die UMAP-Visualisierung überprüfen Sie die Skripte in scripts/{knn,umap} .

Hinweis: Dateien versuchen, auf dem neuesten Stand zu sein und die empfohlenen Parameter jedes Papiers so genau wie möglich zu befolgen. Überprüfen Sie sie jedoch vor dem Ausführen.


Tutorials

Bitte sehen Sie sich unsere Dokumentation und Tutorials an:

Wenn Sie zum Solo-Learn beitragen möchten, schauen Sie sich an, wie Sie den Verhaltenskodex beitragen und befolgen


Modellzoo

Alle vorgefertigten Modelle Avaable können direkt über die Tabellen unten oder programmgesteuert heruntergeladen werden, indem eines der folgenden Skripte zoo/cifar10.sh , zoo/cifar100.sh , zoo/imagenet100.sh und zoo/imagenet.sh ausgeführt werden.


Ergebnisse

Hinweis: Hyperparameter sind möglicherweise nicht die besten, wir werden die Methoden mit geringerer Leistung letztendlich wieder auflösen.

CIFAR-10

Verfahren Rückgrat Epochen Dali ACC@1 ACC@5 Kontrollpunkt
All4one Resnet18 1000 93.24 99,88 ?
Barlow Twins Resnet18 1000 92.10 99.73 ?
BYOL Resnet18 1000 92.58 99.79 ?
Deepcluster v2 Resnet18 1000 88.85 99,58 ?
Dino Resnet18 1000 89,52 99.71 ?
Moco v2+ Resnet18 1000 92.94 99.79 ?
Moco v3 Resnet18 1000 93.10 99,80 ?
Nnclr Resnet18 1000 91.88 99.78 ?
Ressl Resnet18 1000 90.63 99,62 ?
Simclr Resnet18 1000 90.74 99.75 ?
Simsiam Resnet18 1000 90.51 99.72 ?
Supcon Resnet18 1000 93.82 99,65 ?
Swav Resnet18 1000 89.17 99,68 ?
Vibcreg Resnet18 1000 91.18 99.74 ?
Vicreg Resnet18 1000 92.07 99.74 ?
W-MSE Resnet18 1000 88.67 99,68 ?

Cifar-100

Verfahren Rückgrat Epochen Dali ACC@1 ACC@5 Kontrollpunkt
All4one Resnet18 1000 72.17 93.35 ?
Barlow Twins Resnet18 1000 70,90 91.91 ?
BYOL Resnet18 1000 70,46 91.96 ?
Deepcluster v2 Resnet18 1000 63.61 88.09 ?
Dino Resnet18 1000 66,76 90.34 ?
Moco v2+ Resnet18 1000 69.89 91.65 ?
Moco v3 Resnet18 1000 68,83 90.57 ?
Nnclr Resnet18 1000 69,62 91.52 ?
Ressl Resnet18 1000 65,92 89.73 ?
Simclr Resnet18 1000 65.78 89.04 ?
Simsiam Resnet18 1000 66.04 89,62 ?
Supcon Resnet18 1000 70.38 89,57 ?
Swav Resnet18 1000 64,88 88.78 ?
Vibcreg Resnet18 1000 67.37 90.07 ?
Vicreg Resnet18 1000 68,54 90.83 ?
W-MSE Resnet18 1000 61.33 87,26 ?

ImageNet-100

Verfahren Rückgrat Epochen Dali ACC@1 (online) ACC@1 (Offline) ACC@5 (online) ACC@5 (offline) Kontrollpunkt
All4one Resnet18 400 ✔️ 81.93 - - 96.23 - - ?
Barlow Twins Resnet18 400 ✔️ 80.38 80.16 95.28 95.14 ?
BYOL Resnet18 400 ✔️ 80.16 80.32 95.02 94.94 ?
Deepcluster v2 Resnet18 400 75,36 75,4 93.22 93.10 ?
Dino Resnet18 400 ✔️ 74,84 74,92 92.92 92.78 ?
Dino? Vit winzig 400 63.04 Todo 87.72 Todo ?
Moco v2+ Resnet18 400 ✔️ 78,20 79,28 95,50 95.18 ?
Moco v3 Resnet18 400 ✔️ 80.36 80.36 95.18 94.96 ?
Moco v3 Resnet50 400 ✔️ 85.48 84,58 96,82 96.70 ?
Nnclr Resnet18 400 ✔️ 79,80 80.16 95.28 95.30 ?
Ressl Resnet18 400 ✔️ 76,92 78,48 94.20 94.24 ?
Simclr Resnet18 400 ✔️ 77,64 Todo 94.06 Todo ?
Simsiam Resnet18 400 ✔️ 74,54 78,72 93.16 94.78 ?
Supcon Resnet18 400 ✔️ 84.40 Todo 95.72 Todo ?
Swav Resnet18 400 ✔️ 74.04 74,28 92.70 92.84 ?
Vibcreg Resnet18 400 ✔️ 79,86 79,38 94.98 94.60 ?
Vicreg Resnet18 400 ✔️ 79,22 79,40 95.06 95.02 ?
W-MSE Resnet18 400 ✔️ 67.60 69.06 90,94 91.22 ?

Methoden, bei denen Hyperparameter stark abgestimmt waren.

? VIT ist sehr berechnet intensiv und instabil, so dass wir langsam größere Architekturen und mit einer größeren Chargengröße laufen. ATM, Gesamtstapelgröße beträgt 128 und wir mussten Float32 -Präzision verwenden. Wenn Sie einen Beitrag leisten möchten, indem Sie es ausführen, lassen Sie es uns wissen!

Bildnische

Verfahren Rückgrat Epochen Dali ACC@1 (online) ACC@1 (Offline) ACC@5 (online) ACC@5 (offline) Kontrollpunkt Finetuned Checkpoint
Barlow Twins Resnet50 100 ✔️ 67.18 67.23 87.69 87,98 ?
BYOL Resnet50 100 ✔️ 68,63 68.37 88.80 88,66 ?
Moco v2+ Resnet50 100 ✔️ 62.61 66,84 85,40 87.60 ?
Mae Vit-B/16 100 ~ 81.60 (finetuned) ~ 95.50 (finatuned) ? ?

Trainingseffizienz für Dali

Wir berichten über die Schulungseffizienz einiger Methoden mit einem ResNet18 mit und ohne Dali (4 Arbeiter pro GPU) in einem Server mit einem Intel i9-9820x und zwei RTX2080TI.

Verfahren Dali Gesamtzeit für 20 Epochen Zeit für 1 Epoche GPU -Speicher (pro GPU)
Barlow Twins 1H 38m 27s 4m 55s 5097 MB
✔️ 43m 2s 2m 10s (56% schneller) 9292 MB
BYOL 1H 38m 46s 4m 56s 5409 MB
✔️ 50m 33s 2m 31s (49% schneller) 9521 MB
Nnclr 1H 38m 30s 4m 55s 5060 MB
✔️ 42m 3s 2m 6s (64% schneller) 9244 MB

Hinweis : Die GPU -Speichererhöhung skaliert nicht mit dem Modell, sondern skaliert mit der Anzahl der Arbeitnehmer.


Zitat

Wenn Sie Solo-Learn verwenden, zitieren Sie bitte unser Papier:

 @article { JMLR:v23:21-1155 ,
  author  = { Victor Guilherme Turrisi da Costa and Enrico Fini and Moin Nabi and Nicu Sebe and Elisa Ricci } ,
  title   = { solo-learn: A Library of Self-supervised Methods for Visual Representation Learning } ,
  journal = { Journal of Machine Learning Research } ,
  year    = { 2022 } ,
  volume  = { 23 } ,
  number  = { 56 } ,
  pages   = { 1-6 } ,
  url     = { http://jmlr.org/papers/v23/21-1155.html }
}
Expandieren
Zusätzliche Informationen