Página Inicial>Relacionado com a programação>Pitão

solo-learn

Uma biblioteca de métodos auto-supervisionados para a representação visual não supervisionada aprendizado de Pytorch Lightning. Nosso objetivo é fornecer métodos auto-supervisionados da SOTA em um ambiente comparável e, ao mesmo tempo, implementar truques de treinamento. A biblioteca é independente, mas é possível usar os modelos fora do solo-aprendizado. Mais detalhes em nosso artigo .


Notícias


Roteiro e ajuda necessária


Métodos disponíveis


Sabor extra

Backbones

Dados

Avaliação

Truques de treinamento

Log


Requisitos

Opcional :


Instalação

Primeiro clone o repo.

Em seguida, para instalar solo-learn com suporte dali e/ou umap, use:

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

Se nenhum suporte DALI/UMAP/H5 for necessário, o repositório poderá ser instalado como:

pip3 install .

Para desenvolvimento local:

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

NOTA: Se você estiver tendo problemas com Dali, instale -o seguindo o guia deles.

Nota 2: Considere a instalação do Pillow-SIMD para obter melhores tempos de carregamento quando não estiver usando o DALI.

Nota 3: em breve estará no PIP.


Treinamento

Para pré -treinar a espinha dorsal, siga um dos muitos arquivos bash nos scripts/pretrain/ . Agora estamos usando o Hydra para lidar com os arquivos de configuração, então a sintaxe comum é algo como:

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.

Depois disso, para avaliação linear offline, siga os exemplos em scripts/linear ou scripts/finetune para o Finetuning todo o backbone.

Para avaliação K-NN e visualização UMAP, verifique os scripts nos scripts/{knn,umap} .

NOTA: Os arquivos tentam estar atualizados e seguem o mais próximo possível dos parâmetros recomendados de cada artigo, mas verifique-os antes de executar.


Tutoriais

Por favor, confira nossa documentação e tutoriais:

Se você deseja contribuir para o solo-learn, verifique como contribuir e seguir o código de conduta


Modelo Zoológico

Todos os modelos pré -tenhados aVaable podem ser baixados diretamente através das tabelas abaixo ou programaticamente executando um dos seguintes scripts zoo/cifar10.sh , zoo/cifar100.sh , zoo/imagenet100.sh e zoo/imagenet.sh .


Resultados

NOTA: Os hyperparameters podem não ser os melhores, faremos novamente os métodos com menor desempenho eventualmente.

Cifar-10

Método Espinha dorsal Épocas Dali ACC@1 ACC@5 Ponto de verificação
All4one Resnet18 1000 93.24 99.88 ?
Barlow gêmeos 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

Método Espinha dorsal Épocas Dali ACC@1 ACC@5 Ponto de verificação
All4one Resnet18 1000 72.17 93.35 ?
Barlow gêmeos 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

Método Espinha dorsal Épocas Dali ACC@1 (online) ACC@1 (offline) ACC@5 (online) ACC@5 (offline) Ponto de verificação
All4one Resnet18 400 ✔️ 81.93 - 96.23 - ?
Barlow gêmeos 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 Tiny 400 63.04 PENDÊNCIA 87.72 PENDÊNCIA ?
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 PENDÊNCIA 94.06 PENDÊNCIA ?
Simsiam Resnet18 400 ✔️ 74.54 78.72 93.16 94.78 ?
SUPCON Resnet18 400 ✔️ 84.40 PENDÊNCIA 95.72 PENDÊNCIA ?
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 ?

Métodos em que os hiperparâmetros estavam fortemente sintonizados.

? O VIT é muito intensivo e instável, por isso estamos lentamente executando arquiteturas maiores e com um tamanho de lote maior. ATM, o tamanho total do lote é 128 e precisávamos usar a precisão do float32. Se você deseja contribuir com isso, informe -nos!

Imagenet

Método Espinha dorsal Épocas Dali ACC@1 (online) ACC@1 (offline) ACC@5 (online) ACC@5 (offline) Ponto de verificação Ponto de verificação FinetUned
Barlow gêmeos 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 (Finetuned) ? ?

Eficiência de treinamento para Dali

Relatamos a eficiência de treinamento de alguns métodos usando um resnet18 com e sem dali (4 trabalhadores por GPU) em um servidor com um Intel i9-9820X e dois RTX2080TI.

Método Dali Tempo total para 20 épocas Hora de 1 época Memória da GPU (por GPU)
Barlow gêmeos 1H 38m 27s 4m 55s 5097 MB
✔️ 43m 2s 2m 10s (56% mais rápido) 9292 MB
BYOL 1H 38m 46s 4m 56s 5409 MB
✔️ 50m 33s 2m 31s (49% mais rápido) 9521 MB
Nnclr 1H 38m 30s 4m 55s 5060 MB
✔️ 42m 3s 2m 6s (64% mais rápido) 9244 MB

NOTA : O aumento da memória da GPU não é escalado com o modelo, mas ele escala com o número de trabalhadores.


Citação

Se você usar solo-learn, cite nosso papel:

 @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 }
}
Expandir
Informações adicionais