
USB : معيار تعليمي موحد شبه خاضع للإشراف للسيرة الذاتية ، NLP ، وتصنيف الصوت
ورقة · المعيار · التوضيح · مستندات · مشكلة · بلوق · بلوق (Pytorch) · بلوق (صيني) · فيديو · فيديو (صيني)
[03/16/2024] أضف EPASS و SequencEmatch و RefixMatch. تم إصلاح بعض الأخطاء المطبعية.
[07/07/2023] إضافة DefixMatch. إصلاح بعض الأخطاء. إطلاق semilearn = 0.3.1/
[06/01/2023] انضم USB رسميًا إلى النظام الإيكولوجي Pytorch! [مدونة Pytorch]
[01/30/2023] تحديث semilearn == 0.3.0. إضافة freematch و softmatch. أضف خوارزميات غير متوازنة. تحديث النتائج وأضف دعم WANDB. الرجوع إلى change_log للحصول على التفاصيل. [النتائج] [سجلات] [WANDB]. يمكن العثور على سجلات كلاسيكية أقدم هنا: [سجل Torchssl].
[10/16/2022] رابط تنزيل مجموعة البيانات وتعليمات العملية التي تم إصدارها! [مجموعات البيانات]
[10/13/2022] لقد انتهينا من الإصدار الجاهز للكاميرا مع تحديث [النتائج]. [OpenReview]
[10/06/2022] تم تحديث سجلات التدريب ونتائج USB! سيتم تحميل مجموعة البيانات المتاحة قريبًا. [سجلات] [النتائج]
[09/17/2022] تم قبول ورقة USB بواسطة مجموعة بيانات Neurips 2022 والمسار القياسي! [OpenReview]
[08/21/2022] تم إصدار USB!
USB هي حزمة بيثون قائمة على Pytorch للتعلم شبه الخاضع للإشراف (SSL). إنه سهل الاستخدام/تمديده ، وبأسعار معقولة للمجموعات الصغيرة ، وشاملة لتطوير وتقييم خوارزميات SSL. يوفر USB تنفيذ 14 خوارزميات SSL على أساس تنظيم الاتساق ، و 15 مهمة للتقييم من مجال السيرة الذاتية ، NLP ، والمجال الصوتي.

(العودة إلى الأعلى)
هذا مثال على كيفية إعداد USB محليًا. للحصول على نسخة محلية ، اتبع خطوات المثال البسيط هذه.
تم بناء USB على Pytorch ، مع Torchvision و Torchaudio و Transformers.
لتثبيت الحزم المطلوبة ، يمكنك إنشاء بيئة كوندا:
conda create --name usb python=3.8ثم استخدم PIP لتثبيت الحزم المطلوبة:
pip install -r requirements.txtمن الآن فصاعدًا ، يمكنك البدء في استخدام USB عن طريق الكتابة
python train.py --c config/usb_cv/fixmatch/fixmatch_cifar100_200_0.yamlنحن نقدم حزمة Python semilearn من USB للمستخدمين الذين يرغبون في بدء تدريب/اختبار خوارزميات SSL المدعومة على بياناتهم بسرعة:
pip install semilearn(العودة إلى الأعلى)
يمكنك أيضًا تطوير خوارزمية SSL الخاصة بك وتقييمها عن طريق استنساخ USB:
git clone https://github.com/microsoft/Semi-supervised-learning.git(العودة إلى الأعلى)
يتم عرض الإرشادات التفصيلية للتنزيل والمعالجة في تنزيل مجموعة البيانات. يرجى متابعته لتنزيل مجموعات البيانات قبل تشغيل أو تطوير الخوارزميات.
(العودة إلى الأعلى)
USB سهل الاستخدام والتمديد. سيساعدك الذهاب إلى أمثلة الربط على دراية USB بالاستخدام السريع ، أو تقييم خوارزمية SSL الموجودة على مجموعة البيانات الخاصة بك ، أو تطوير خوارزميات SSL جديدة.
يرجى الاطلاع على التثبيت لتثبيت USB أولاً. نحن نقدم دروس كولاب لـ:
الخطوة 1: تحقق من بيئتك
تحتاج إلى تثبيت Docker و NVIDIA بشكل صحيح أولاً. لاستخدام GPU في حاوية Docker ، تحتاج أيضًا إلى تثبيت Nvidia-Docker2 (دليل التثبيت). ثم ، يرجى التحقق من إصدار CUDA الخاص بك عبر nvidia-smi
Step2: استنساخ المشروع
git clone https://github.com/microsoft/Semi-supervised-learning.gitالخطوة 3: بناء صورة Docker
قبل إنشاء الصورة ، يمكنك تعديل Dockerfile وفقًا لإصدار CUDA الخاص بك. إصدار CUDA الذي نستخدمه هو 11.6. يمكنك تغيير علامة الصورة الأساسية وفقًا لهذا الموقع. تحتاج أيضًا إلى تغيير- --extra-index-url وفقًا لإصدار CUDA الخاص بك من أجل تثبيت الإصدار الصحيح من Pytorch. يمكنك التحقق من عنوان URL من خلال موقع Pytorch.
استخدم هذا الأمر لإنشاء الصورة
cd Semi-supervised-learning && docker build -t semilearn . تم القيام به. يمكنك استخدام الصورة التي قمت بإنشائها للتو لمشروعك. لا تنس استخدام الوسيطة --gpu عندما تريد استخدام GPU في حاوية.
فيما يلي مثال لتدريب FixMatch على CIFAR-100 مع 200 علامة. يمكن تحديد تدريب الخوارزميات الأخرى المدعومة (على مجموعات البيانات الأخرى مع إعدادات الملصقات المختلفة) بواسطة ملف التكوين:
python train.py --c config/usb_cv/fixmatch/fixmatch_cifar100_200_0.yamlبعد التدريب ، يمكنك التحقق من أداء التقييم على سجلات التدريب ، أو تشغيل البرنامج النصي للتقييم:
python eval.py --dataset cifar100 --num_classes 100 --load_path /PATH/TO/CHECKPOINT
تحقق من الوثائق النامية لإنشاء خوارزمية SSL الخاصة بك!
لمزيد من الأمثلة ، يرجى الرجوع إلى الوثائق
(العودة إلى الأعلى)
يرجى الرجوع إلى نتائج النتائج القياسية في مهام مختلفة.
(العودة إلى الأعلى)
TODO: أضف نماذج تم تدريبها مسبقًا.
(العودة إلى الأعلى)
راجع المشكلات المفتوحة للحصول على قائمة كاملة بالميزات المقترحة (والمشكلات المعروفة).
(العودة إلى الأعلى)
يرحب هذا المشروع بالمساهمات والاقتراحات. تطلب منك معظم المساهمات الموافقة على اتفاقية ترخيص المساهم (CLA) مع إعلان أن لديك الحق في ذلك في الواقع ، ويفعلنا في الواقع حقوق استخدام مساهمتك. لمزيد من التفاصيل ، تفضل بزيارة https://cla.opensource.microsoft.com.
عند إرسال طلب سحب ، سيحدد CLA Bot تلقائيًا ما إذا كنت بحاجة إلى توفير CLA وتزيين العلاقات العامة بشكل مناسب (على سبيل المثال ، فحص الحالة ، التعليق). ببساطة اتبع الإرشادات التي يقدمها الروبوت. ستحتاج فقط إلى القيام بذلك مرة واحدة عبر جميع عمليات إعادة الشراء باستخدام CLA لدينا.
اعتمد هذا المشروع رمز سلوك المصدر المفتوح Microsoft. لمزيد من المعلومات ، راجع مدونة الشهادة الأسئلة الشائعة أو الاتصال بـ [email protected] مع أي أسئلة أو تعليقات إضافية.
إذا كان لديك اقتراح من شأنه أن يجعل USB أفضل ، فيرجى تورك الريبو وإنشاء طلب سحب. يمكنك أيضًا فتح مشكلة مع علامة "تحسين". لا تنسى إعطاء المشروع نجمًا! شكرًا لك مرة أخرى!
git checkout -b your_name/your_branch )git commit -m 'Add some features' )git push origin your_name/your_branch )(العودة إلى الأعلى)
قد يحتوي هذا المشروع على علامات تجارية أو شعارات للمشاريع أو المنتجات أو الخدمات. يخضع الاستخدام المعتمد للعلامات التجارية أو الشعارات Microsoft ويجب أن يتبعوا إرشادات Microsoft التجارية والعلامة التجارية. يجب ألا يسبب استخدام العلامات التجارية Microsoft أو الشعارات في إصدارات معدلة من هذا المشروع الارتباك أو يعني رعاية Microsoft. يخضع أي استخدام للعلامات التجارية أو الشعارات من طرف ثالث لسياسات تلك الطرف الثالث.
موزعة تحت رخصة معهد ماساتشوستس للتكنولوجيا. انظر LICENSE.txt لمزيد من المعلومات.
(العودة إلى الأعلى)
يتم الحفاظ على مجتمع USB بواسطة:
(العودة إلى الأعلى)
يرجى الاستشهاد بنا إذا كنت بخير هذا المشروع مفيد لمشروعك/الورق:
@inproceedings{usb2022,
doi = {10.48550/ARXIV.2208.07204},
url = {https://arxiv.org/abs/2208.07204},
author = {Wang, Yidong and Chen, Hao and Fan, Yue and Sun, Wang and Tao, Ran and Hou, Wenxin and Wang, Renjie and Yang, Linyi and Zhou, Zhi and Guo, Lan-Zhe and Qi, Heli and Wu, Zhen and Li, Yu-Feng and Nakamura, Satoshi and Ye, Wei and Savvides, Marios and Raj, Bhiksha and Shinozaki, Takahiro and Schiele, Bernt and Wang, Jindong and Xie, Xing and Zhang, Yue},
title = {USB: A Unified Semi-supervised Learning Benchmark for Classification},
booktitle = {Thirty-sixth Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year = {2022}
}
@article{wang2023freematch,
title={FreeMatch: Self-adaptive Thresholding for Semi-supervised Learning},
author={Wang, Yidong and Chen, Hao and Heng, Qiang and Hou, Wenxin and Fan, Yue and and Wu, Zhen and Wang, Jindong and Savvides, Marios and Shinozaki, Takahiro and Raj, Bhiksha and Schiele, Bernt and Xie, Xing},
booktitle={International Conference on Learning Representations (ICLR)},
year={2023}
}
@article{chen2023softmatch,
title={SoftMatch: Addressing the Quantity-Quality Trade-off in Semi-supervised Learning},
author={Chen, Hao and Tao, Ran and Fan, Yue and Wang, Yidong and Wang, Jindong and Schiele, Bernt and Xie, Xing and Raj, Bhiksha and Savvides, Marios},
booktitle={International Conference on Learning Representations (ICLR)},
year={2023}
}
@article{zhang2021flexmatch,
title={FlexMatch: Boosting Semi-supervised Learning with Curriculum Pseudo Labeling},
author={Zhang, Bowen and Wang, Yidong and Hou, Wenxin and Wu, Hao and Wang, Jindong and Okumura, Manabu and Shinozaki, Takahiro},
booktitle={Neural Information Processing Systems (NeurIPS)},
year={2021}
}
نشكر المشاريع التالية للرجوع إليها إنشاء USB:
(العودة إلى الأعلى)