ホーム>プログラミング関連>パイソン

ソロラーン

Pytorch Lightningを搭載した監視されていない視覚表現の学習のための自己監視方法のライブラリ。私たちは、同等の環境でSOTAの自己監視方法を提供することを目指していますが、同時にトレーニングのトリックを実装しています。ライブラリは自己完結型ですが、ソロラーン以外のモデルを使用することは可能です。私たちの論文の詳細


ニュース


ロードマップとヘルプが必要です


利用可能な方法


余分な風味

バックボーン

データ

評価

トレーニングのトリック

ロギング


要件

オプション


インストール

最初にレポをクローンします。

次に、DALIおよび/またはUMAPサポートでSolo-Learnをインストールするには、以下を使用します。

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

DALI/UMAP/H5サポートが必要ない場合、リポジトリを次のようにインストールできます。

pip3 install .

ローカル開発のため:

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

注: DALIに問題がある場合は、ガイドに従ってインストールしてください。

注2: DALIを使用していないときに、より良い読み込み時間に枕-SIMDをインストールすることを検討してください。

注3:すぐにPIPに参加します。


トレーニング

バックボーンを前処理するには、 scripts/pretrain/の多くのbashファイルの1つに従ってください。現在、Hydraを使用して構成ファイルを処理しているため、共通の構文は次のようなものです。

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.

その後、オフライン線形評価のために、バックボーン全体を微調整するためのscripts/linearまたはscripts/finetuneの例に従ってください。

K-NN評価とUMAPの視覚化についてはscripts/{knn,umap}のスクリプトを確認してください。

注:ファイルは最新の状態になり、各ペーパーの推奨パラメーターを可能な限り密接に従うようにしますが、実行する前にそれらを確認してください。


チュートリアル

ドキュメントとチュートリアルをご覧ください。

Solo-Learnに貢献したい場合は、貢献する方法を確認し、行動規範に従うようにしてください


モデル動物園

Avaiableはすべて、以下のスクリプトのいずれかを実行することにより、下の表を介して直接ダウンロードできます。Zoo zoo/cifar10.shzoo/cifar100.shzoo/imagenet100.shzoo/imagenet.sh


結果

注:ハイパーパラメーターは最高ではないかもしれません。最終的にはパフォーマンスが低い方法でメソッドを再実行します。

CIFAR-10

方法バックボーンエポックダリACC@1 ACC@5チェックポイント
all4one resnet18 1000 93.24 99.88
バーロウ双子resnet18 1000 92.10 99.73
バイオルresnet18 1000 92.58 99.79
DeepCluster V2 resnet18 1000 88.85 99.58
ディノ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
resl resnet18 1000 90.63 99.62
simclr resnet18 1000 90.74 99.75
シムシアム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

方法バックボーンエポックダリACC@1 ACC@5チェックポイント
all4one resnet18 1000 72.17 93.35
バーロウ双子resnet18 1000 70.90 91.91
バイオルresnet18 1000 70.46 91.96
DeepCluster V2 resnet18 1000 63.61 88.09
ディノ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
resl resnet18 1000 65.92 89.73
simclr resnet18 1000 65.78 89.04
シムシアム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

方法バックボーンエポックダリACC@1(オンライン) ACC@1(オフライン) ACC@5(オンライン) ACC@5(オフライン)チェックポイント
all4one resnet18 400 ✔✔️ 81.93 - 96.23 -
バーロウ双子resnet18 400 ✔✔️ 80.38 80.16 95.28 95.14
バイオルresnet18 400 ✔✔️ 80.16 80.32 95.02 94.94
DeepCluster V2 resnet18 400 75.36 75.4 93.22 93.10
ディノresnet18 400 ✔✔️ 74.84 74.92 92.92 92.78
ディノ? vittiny 400 63.04トト87.72トト
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
resl resnet18 400 ✔✔️ 76.92 78.48 94.20 94.24
simclr resnet18 400 ✔✔️ 77.64トト94.06トト
シムシアムresnet18 400 ✔✔️ 74.54 78.72 93.16 94.78
supcon resnet18 400 ✔✔️ 84.40トト95.72トト
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

ハイパーパラメーターが重く調整された方法。

? VITは非常に集中的で不安定であるため、より大きなアーキテクチャをゆっくりと実行し、バッチサイズが大きくなります。 ATM、合計バッチサイズは128で、Float32精度を使用する必要がありました。実行して貢献したい場合は、お知らせください!

Imagenet

方法バックボーンエポックダリACC@1(オンライン) ACC@1(オフライン) ACC@5(オンライン) ACC@5(オフライン)チェックポイントFinetunedチェックポイント
バーロウ双子Resnet50 100 ✔✔️ 67.18 67.23 87.69 87.98
バイオルResnet50 100 ✔✔️ 68.63 68.37 88.80 88.66
Moco V2+ Resnet50 100 ✔✔️ 62.61 66.84 85.40 87.60
メイVIT-B/16 100 81.60(Finetuned) 95.50(Finetuned)

ダリのトレーニング効率

Intel I9-9820Xと2つのRTX2080TIを備えたサーバーでDALI(GPUあたり4人のワーカー)を使用した場合とない場合のRESNET18を使用して、いくつかの方法のトレーニング効率を報告します。

方法ダリ20エポックの合計時間1エポックの時間GPUメモリ(GPUごと)
バーロウ双子1H 38m 27S 4m 55s 5097 MB
✔✔️ 43m 2秒2m 10s(56%速い) 9292 MB
バイオル1H 38M 46S 4m 56s 5409 MB
✔✔️ 50m 33s 2m 31S(49%速い) 9521 MB
nnclr 1H 38m 30S 4m 55s 5060 MB
✔✔️ 42m 3s 2m 6s(64%高速) 9244 MB

:GPUメモリの増加は、モデルではスケーリングされず、労働者の数とともにスケーリングします。


引用

Solo-Learnを使用している場合は、私たちの論文を引用してください。

 @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 }
}
拡大する
追加情報