
USB : เกณฑ์มาตรฐานการเรียนรู้แบบกึ่งแบบครบวงจรสำหรับการจำแนกประเภท CV, NLP และเสียง
กระดาษ·เกณฑ์มาตรฐาน·การสาธิต·เอกสาร·ออก·บล็อก·บล็อก (pytorch) ·บล็อก (ภาษาจีน) ·วิดีโอ·วิดีโอ (จีน)
[03/16/2024] เพิ่ม epass, sequencematch และ refixMatch แก้ไขความผิดพลาดบางอย่าง
[07/07/2023] เพิ่ม defixMatch แก้ไขข้อบกพร่องบางอย่าง ปล่อย semilearn = 0.3.1/
[06/01/2023] USB ได้เข้าร่วมระบบนิเวศ Pytorch อย่างเป็นทางการ! [Pytorch Blog]
[01/30/2023] อัปเดต semilearn == 0.3.0 เพิ่ม freematch และ softmatch เพิ่มอัลกอริทึมที่ไม่สมดุล อัปเดตผลลัพธ์และเพิ่มการสนับสนุน WANDB อ้างอิง Change_log สำหรับรายละเอียด [ผลลัพธ์] [บันทึก] [Wandb] บันทึกคลาสสิกที่เก่ากว่าสามารถพบได้ที่นี่: [torchsl log]
[10/16/2022] ลิงค์ดาวน์โหลดชุดข้อมูลและคำแนะนำกระบวนการที่เผยแพร่! [ชุดข้อมูล]
[10/13/2022] เราได้เสร็จสิ้นรุ่นกล้องพร้อมด้วย [ผลลัพธ์] ที่อัปเดตแล้ว [OpenReview]
[10/06/2022] บันทึกการฝึกอบรมและผลลัพธ์ของ USB ได้รับการอัปเดตแล้ว! ชุดข้อมูลที่มีอยู่จะถูกอัปโหลดเร็ว ๆ นี้ [บันทึก] [ผลลัพธ์]
[09/17/2022] กระดาษ USB ได้รับการยอมรับจาก Neurips 2022 ชุดข้อมูลและ Benchmark Track! [OpenReview]
[08/21/2022] USB ได้รับการปล่อยตัวแล้ว!
USB เป็นแพ็คเกจ Python ที่ใช้ Pytorch สำหรับการเรียนรู้แบบกึ่งผู้ดูแล (SSL) มันง่ายต่อการใช้งาน/ขยาย ราคาไม่แพง สำหรับกลุ่มเล็ก ๆ และครอบคลุมสำหรับการพัฒนาและประเมินอัลกอริทึม SSL USB จัดเตรียมการใช้งานอัลกอริทึม SSL 14 รายการตามการทำให้เป็นมาตรฐานความสอดคล้องและ 15 งานสำหรับการประเมินผลจาก CV, 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 Package Semilearn ของ USB สำหรับผู้ใช้ที่ต้องการเริ่มการฝึกอบรม/ทดสอบอัลกอริทึม SSL ที่รองรับบนข้อมูลของพวกเขาอย่างรวดเร็ว:
pip install semilearn(กลับไปด้านบน)
นอกจากนี้คุณยังสามารถพัฒนาอัลกอริทึม SSL ของคุณเองและประเมินโดยการโคลน USB:
git clone https://github.com/microsoft/Semi-supervised-learning.git(กลับไปด้านบน)
คำแนะนำโดยละเอียดสำหรับการดาวน์โหลดและประมวลผลจะแสดงในชุดข้อมูล โปรดติดตามเพื่อดาวน์โหลดชุดข้อมูลก่อนที่จะเรียกใช้หรือพัฒนาอัลกอริทึม
(กลับไปด้านบน)
USB ใช้งานง่ายและขยาย การผ่านตัวอย่างการระฆังจะช่วยให้คุณคุ้นเคยกับ USB สำหรับการใช้งานอย่างรวดเร็วประเมินอัลกอริทึม SSL ที่มีอยู่ในชุดข้อมูลของคุณเองหรือพัฒนาอัลกอริทึม SSL ใหม่
โปรดดูการติดตั้งเพื่อติดตั้ง USB ก่อน เรามีบทเรียน colab สำหรับ:
ขั้นตอนที่ 1: ตรวจสอบสภาพแวดล้อมของคุณ
คุณต้องติดตั้งไดรเวอร์ Docker และ Nvidia ก่อน ในการใช้ GPU ในคอนเทนเนอร์ Docker คุณต้องติดตั้ง Nvidia-Docker2 (คู่มือการติดตั้ง) จากนั้นโปรดตรวจสอบเวอร์ชัน cuda ของคุณผ่าน nvidia-smi
ขั้นตอนที่ 2: โคลนโครงการ
git clone https://github.com/microsoft/Semi-supervised-learning.gitขั้นตอนที่ 3: สร้างภาพนักเทียบท่า
ก่อนที่จะสร้างภาพคุณสามารถปรับเปลี่ยน 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 บอทจะพิจารณาโดยอัตโนมัติว่าคุณจำเป็นต้องให้ CLA และตกแต่ง PR อย่างเหมาะสม (เช่นการตรวจสอบสถานะแสดงความคิดเห็น) เพียงทำตามคำแนะนำที่จัดทำโดยบอท คุณจะต้องทำสิ่งนี้เพียงครั้งเดียวใน repos ทั้งหมดโดยใช้ CLA ของเรา
โครงการนี้ได้นำรหัสการดำเนินงานของ Microsoft โอเพ่นซอร์สมาใช้ สำหรับข้อมูลเพิ่มเติมโปรดดูจรรยาบรรณคำถามที่พบบ่อยหรือติดต่อ [email protected] พร้อมคำถามหรือความคิดเห็นเพิ่มเติมใด ๆ
หากคุณมีข้อเสนอแนะที่จะทำให้ USB ดีขึ้นโปรดแยก repo และสร้างคำขอดึง นอกจากนี้คุณยังสามารถเปิดปัญหาด้วยแท็ก "การปรับปรุง" อย่าลืมให้โครงการเป็นดารา! ขอบคุณอีกครั้ง!
git checkout -b your_name/your_branch )git commit -m 'Add some features' )git push origin your_name/your_branch )(กลับไปด้านบน)
โครงการนี้อาจมีเครื่องหมายการค้าหรือโลโก้สำหรับโครงการผลิตภัณฑ์หรือบริการ การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ที่ได้รับอนุญาตขึ้นอยู่กับและต้องปฏิบัติตามแนวทางเครื่องหมายการค้าและแบรนด์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ในรุ่นที่แก้ไขของโครงการนี้จะต้องไม่ทำให้เกิดความสับสนหรือบอกเป็นสปอนเซอร์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของบุคคลที่สามจะอยู่ภายใต้นโยบายของบุคคลที่สามเหล่านั้น
แจกจ่ายภายใต้ใบอนุญาต MIT ดู 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:
(กลับไปด้านบน)