الصفحة الرئيسية>المتعلقة بالبرمجة>بايثون

التعلم منفردا

مكتبة من الأساليب الخاضعة للإشراف ذاتيا للتمثيل المرئي غير الخاضع للإشراف التعلم مدعوم من البرق Pytorch. نحن نهدف إلى توفير أساليب SOTA ذات الخبرة الذاتي في بيئة مماثلة بينما ، في الوقت نفسه ، تنفيذ الحيل التدريبية. المكتبة قائمة بذاتها ، ولكن من الممكن استخدام النماذج خارج التعلم المنفرد. مزيد من التفاصيل في ورقتنا .


أخبار


خريطة الطريق والمساعدة اللازمة


الطرق المتاحة


نكهة إضافية

العمود الفقري

بيانات

تقييم

حيل تدريب

قطع الأشجار


متطلبات

خياري :


تثبيت

أول استنساخ الريبو.

ثم ، لتثبيت التعلم المنفرد مع دعم 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: فكر في تثبيت وسادة SIMD لأوقات التحميل الأفضل عند عدم استخدام DALI.

الملاحظة 3: قريبا لتكون على PIP.


تمرين

لتدرج العمود الفقري ، اتبع أحد ملفات Bash العديدة في scripts/pretrain/ . نستخدم الآن 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} .

ملاحظة: تحاول الملفات أن تكون محدثة وتتبع بشكل وثيق قدر الإمكان المعلمات الموصى بها لكل ورقة ، ولكن تحقق منها قبل التشغيل.


دروس

من فضلك ، تحقق من وثائقنا والدروس التعليمية:

إذا كنت ترغب في المساهمة في التعلم الفردي ، فتأكد من إلقاء نظرة على كيفية المساهمة واتباع مدونة السلوك


طراز حديقة الحيوان

يمكن تنزيل جميع الطرز المسبقة مباشرة عبر الجداول أدناه أو برمجيًا عن طريق تشغيل أحد البرامج النصية التالية zoo/cifar10.sh و zoo/cifar100.sh و zoo/imagenet100.sh و zoo/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 ؟
ريسل RESNET18 1000 90.63 99.62 ؟
Simclr RESNET18 1000 90.74 99.75 ؟
سيمسيام RESNET18 1000 90.51 99.72 ؟
سوبكون RESNET18 1000 93.82 99.65 ؟
سرب 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 ؟
ريسل RESNET18 1000 65.92 89.73 ؟
Simclr RESNET18 1000 65.78 89.04 ؟
سيمسيام RESNET18 1000 66.04 89.62 ؟
سوبكون RESNET18 1000 70.38 89.57 ؟
سرب 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 ؟
دينو؟ VIT TINY 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 تودو ؟
سيمسيام RESNET18 400 74.54 78.72 93.16 94.78 ؟
سوبكون 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 ؟
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 (غير متصل) نقطة التفتيش نقطة تفتيش محيطة
توأم بارلو 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 (محيط) ؟ ؟

كفاءة التدريب ل Dali

نقوم بالإبلاغ عن كفاءة التدريب لبعض الطرق باستخدام ResNet18 مع وبدون DALI (4 عمال لكل وحدة معالجة الرسومات) في خادم مع Intel I9-9820x واثنين من RTX2080TI.

طريقة دالي إجمالي الوقت لمدة 20 عصر حان الوقت لعصر 1 ذاكرة GPU (لكل وحدة معالجة الرسومات)
توأم بارلو 1H 38M 27S 4M 55S 5097 ميغابايت
43M 2S 2M 10S (56 ٪ أسرع) 9292 ميغابايت
بيلول 1H 38M 46S 4M 56S 5409 ميغابايت
50m 33s 2M 31S (49 ٪ أسرع) 9521 ميغابايت
nnclr 1H 38M 30S 4M 55S 5060 ميغابايت
42M 3S 2M 6S (64 ٪ أسرع) 9244 ميغابايت

ملاحظة : لا تتسع زيادة ذاكرة GPU مع النموذج ، بل إنها تتماسك مع عدد العمال.


اقتباس

إذا كنت تستخدم التعلم المنفرد ، فيرجى الاستشهاد بورقنا:

 @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 }
}
يوسع
معلومات إضافية