หน้าแรก>การเขียนโปรแกรมที่เกี่ยวข้อง>หลาม

เดี่ยว-เรียนรู้

ห้องสมุดของวิธีการดูแลตนเองสำหรับการเรียนรู้ด้วยการแสดงภาพที่ไม่ได้รับการดูแลโดย Pytorch Lightning เราตั้งเป้าหมายที่จะให้วิธีการดูแลตนเองของ SOTA ในสภาพแวดล้อมที่เทียบเคียงได้ในขณะเดียวกันก็ใช้เทคนิคการฝึกอบรม ห้องสมุดมีอยู่ในตัวเอง แต่เป็นไปได้ที่จะใช้โมเดลนอกการเรียนรู้เดี่ยว รายละเอียดเพิ่มเติมในกระดาษของเรา


ข่าว


แผนงานและความช่วยเหลือที่จำเป็น


วิธีการที่มีอยู่


รสชาติพิเศษ

กระดูกสันหลัง

ข้อมูล

การประเมิน

เทคนิคการฝึกอบรม

การตัดไม้


ความต้องการ

ไม่จำเป็น :


การติดตั้ง

โคลนครั้งแรก repo

จากนั้นเพื่อติดตั้ง Solo-Learn ด้วยการสนับสนุน Dali และ/หรือ UMAP ให้ใช้:

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: พิจารณาการติดตั้ง Pillow-SIMD เพื่อการโหลดที่ดีขึ้นเมื่อไม่ได้ใช้ DALI

หมายเหตุ 3: เร็ว ๆ นี้จะอยู่บน PIP


การฝึกอบรม

สำหรับการเตรียมกระดูกสันหลังให้ติดตามหนึ่งในไฟล์ bash จำนวนมากใน scripts/pretrain/ ตอนนี้เราใช้ไฮดราเพื่อจัดการไฟล์กำหนดค่าดังนั้นไวยากรณ์ทั่วไปจึงเป็นเช่น:

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 สำหรับ finetuning กระดูกสันหลังทั้งหมด

สำหรับการประเมิน K-NN และการสร้างภาพ UMAP ให้ตรวจสอบสคริปต์ใน scripts/{knn,umap}

หมายเหตุ: ไฟล์พยายามที่จะทันสมัยและติดตามอย่างใกล้ชิดที่สุดเท่าที่จะเป็นไปได้พารามิเตอร์ที่แนะนำของแต่ละกระดาษ แต่ตรวจสอบก่อนที่จะทำงาน


บทเรียน

กรุณาตรวจสอบเอกสารและบทเรียนของเรา:

หากคุณต้องการมีส่วนร่วมในการเรียนรู้เดี่ยวตรวจสอบให้แน่ใจว่าคุณได้ดูวิธีการมีส่วนร่วมและปฏิบัติตามจรรยาบรรณ


สวนสัตว์รุ่น

ทุกรุ่นที่ได้รับการฝึกฝนทั้งหมดสามารถดาวน์โหลดได้โดยตรงผ่านตารางด้านล่างหรือทางโปรแกรมโดยใช้หนึ่งในสคริปต์ต่อไปนี้ zoo/cifar10.sh , zoo/cifar100.sh , zoo/imagenet100.sh และ zoo/imagenet.sh


ผลลัพธ์

หมายเหตุ: Hyperparameters อาจไม่ใช่สิ่งที่ดีที่สุดเราจะดำเนินการตามวิธีการที่มีประสิทธิภาพต่ำกว่าในที่สุด

CIFAR-10

วิธี กระดูกสันหลัง ยุค ต้าบีย acc@1 acc@5 ด่าน
all4one resnet18 1,000 93.24 99.88 -
Barlow Twins resnet18 1,000 92.10 99.73 -
Byol resnet18 1,000 92.58 99.79 -
DeepCluster v2 resnet18 1,000 88.85 99.58 -
Dino resnet18 1,000 89.52 99.71 -
moco v2+ resnet18 1,000 92.94 99.79 -
Moco v3 resnet18 1,000 93.10 99.80 -
nnclr resnet18 1,000 91.88 99.78 -
การรดน้ำ resnet18 1,000 90.63 99.62 -
simclr resnet18 1,000 90.74 99.75 -
Simsiam resnet18 1,000 90.51 99.72 -
supcon resnet18 1,000 93.82 99.65 -
การสวด resnet18 1,000 89.17 99.68 -
Vibcreg resnet18 1,000 91.18 99.74 -
เวิร์ก resnet18 1,000 92.07 99.74 -
W-MSE resnet18 1,000 88.67 99.68 -

CIFAR-100

วิธี กระดูกสันหลัง ยุค ต้าบีย acc@1 acc@5 ด่าน
all4one resnet18 1,000 72.17 93.35 -
Barlow Twins resnet18 1,000 70.90 91.91 -
Byol resnet18 1,000 70.46 91.96 -
DeepCluster v2 resnet18 1,000 63.61 88.09 -
Dino resnet18 1,000 66.76 90.34 -
moco v2+ resnet18 1,000 69.89 91.65 -
Moco v3 resnet18 1,000 68.83 90.57 -
nnclr resnet18 1,000 69.62 91.52 -
การรดน้ำ resnet18 1,000 65.92 89.73 -
simclr resnet18 1,000 65.78 89.04 -
Simsiam resnet18 1,000 66.04 89.62 -
supcon resnet18 1,000 70.38 89.57 -
การสวด resnet18 1,000 64.88 88.78 -
Vibcreg resnet18 1,000 67.37 90.07 -
เวิร์ก resnet18 1,000 68.54 90.83 -
W-MSE resnet18 1,000 61.33 87.26 -

ImageNet-100

วิธี กระดูกสันหลัง ยุค ต้าบีย ACC@1 (ออนไลน์) ACC@1 (ออฟไลน์) ACC@5 (ออนไลน์) ACC@5 (ออฟไลน์) ด่าน
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 เล็ก 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 -
การรดน้ำ resnet18 400 76.92 78.48 94.20 94.24 -
simclr resnet18 400 77.64 สิ่งที่ต้องทำ 94.06 สิ่งที่ต้องทำ -
Simsiam resnet18 400 74.54 78.72 93.16 94.78 -
supcon resnet18 400 84.40 สิ่งที่ต้องทำ 95.72 สิ่งที่ต้องทำ -
การสวด resnet18 400 74.04 74.28 92.70 92.84 -
Vibcreg resnet18 400 79.86 79.38 94.98 94.60 -
เวิร์ก resnet18 400 79.22 79.40 95.06 95.02 -
W-MSE resnet18 400 67.60 69.06 90.94 91.22 -

วิธีการที่ hyperparameters ถูกปรับอย่างหนัก

- VIT มีการคำนวณอย่างเข้มข้นและไม่เสถียรมากดังนั้นเราจึงค่อยๆใช้สถาปัตยกรรมที่มีขนาดใหญ่ขึ้นและมีขนาดแบทช์ที่ใหญ่ขึ้น ATM ขนาดแบทช์ทั้งหมดคือ 128 และเราจำเป็นต้องใช้ความแม่นยำของ Float32 หากคุณต้องการมีส่วนร่วมโดยการเรียกใช้ให้เรารู้!

ImageNet

วิธี กระดูกสันหลัง ยุค ต้าบีย ACC@1 (ออนไลน์) ACC@1 (ออฟไลน์) ACC@5 (ออนไลน์) ACC@5 (ออฟไลน์) ด่าน จุดตรวจ Finetuned
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 -
แม่ Vit-B/16 100 - 81.60 (Finetuned) - 95.50 (Finetuned) - -

ประสิทธิภาพการฝึกอบรมสำหรับต้าหลี่

เรารายงานประสิทธิภาพการฝึกอบรมของวิธีการบางอย่างโดยใช้ RESNET18 ที่มีและไม่มี DALI (4 คนต่อ GPU) ในเซิร์ฟเวอร์ที่มี Intel I9-9820X และ RTX2080TI สองตัว

วิธี ต้าบีย เวลาทั้งหมดสำหรับ 20 ยุค เวลาสำหรับ 1 ยุค หน่วยความจำ GPU (ต่อ GPU)
Barlow Twins 1H 38M 27S 4m 55s 5097 MB
43m 2s 2m 10s (เร็วขึ้น 56%) 9292 MB
Byol 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 }
}
ขยาย
ข้อมูลเพิ่มเติม