
USB : Benchmark pembelajaran semi-diawasi terpadu untuk CV, NLP, dan klasifikasi audio
Kertas · Benchmark · Demo · Dokumen · Masalah · Blog · Blog (Pytorch) · Blog (Cina) · Video · Video (Cina)
[03/16/2024] Tambahkan Epass, SequenceMatch, dan Refixmatch. Memperbaiki beberapa kesalahan ketik.
[07/07/2023] Tambahkan DefixMatch. Memperbaiki beberapa bug. Rilis semilearn = 0.3.1/
[06/01/2023] USB secara resmi bergabung dengan ekosistem Pytorch! [Blog Pytorch]
[01/30/2023] Perbarui semilearn == 0.3.0. Tambahkan FreeMatch dan Softmatch. Tambahkan algoritma yang tidak seimbang. Perbarui hasil dan tambahkan dukungan Wandb. Rujuk Change_log untuk detailnya. [Hasil] [log] [wandb]. Log klasik yang lebih tua dapat ditemukan di sini: [Log Torchssl].
[10/16/2022] Dataset Unduh tautan dan instruksi proses dirilis! [Dataset]
[10/13/2022] Kami telah menyelesaikan versi siap kamera dengan [hasil] yang diperbarui. [OpenReview]
[10/06/2022] Log pelatihan dan hasil USB telah diperbarui! Dataset yang tersedia akan segera diunggah. [Log] [Hasil]
[09/17/2022] Kertas USB telah diterima oleh Neurips 2022 Dataset dan Benchmark Track! [OpenReview]
[08/21/2022] USB telah dirilis!
USB adalah paket Python berbasis Pytorch untuk pembelajaran semi-diawasi (SSL). Ini mudah digunakan/diperluas, terjangkau untuk kelompok-kelompok kecil, dan komprehensif untuk mengembangkan dan mengevaluasi algoritma SSL. USB menyediakan implementasi 14 algoritma SSL berdasarkan regularisasi konsistensi, dan 15 tugas untuk evaluasi dari CV, NLP, dan domain audio.

(kembali ke atas)
Ini adalah contoh cara mengatur USB secara lokal. Untuk mendapatkan salinan lokal, berjalan mengikuti langkah -langkah contoh sederhana ini.
USB dibangun di atas Pytorch, dengan Torchvision, Torchaudio, dan Transformers.
Untuk menginstal paket yang diperlukan, Anda dapat membuat lingkungan Conda:
conda create --name usb python=3.8Kemudian gunakan PIP untuk memasang paket yang diperlukan:
pip install -r requirements.txtMulai sekarang, Anda dapat mulai menggunakan USB dengan mengetik
python train.py --c config/usb_cv/fixmatch/fixmatch_cifar100_200_0.yamlKami menyediakan paket Python semilearn USB untuk pengguna yang ingin memulai pelatihan/menguji algoritma SSL yang didukung pada data mereka dengan cepat:
pip install semilearn(kembali ke atas)
Anda juga dapat mengembangkan algoritma SSL Anda sendiri dan mengevaluasinya dengan mengkloning USB:
git clone https://github.com/microsoft/Semi-supervised-learning.git(kembali ke atas)
Instruksi terperinci untuk mengunduh dan pemrosesan ditampilkan dalam unduhan dataset. Harap ikuti untuk mengunduh set data sebelum menjalankan atau mengembangkan algoritma.
(kembali ke atas)
USB mudah digunakan dan diperluas. Melewati contoh -contoh berteriak akan membantu Anda terbiasa dengan USB untuk penggunaan cepat, mengevaluasi algoritma SSL yang ada pada dataset Anda sendiri, atau mengembangkan algoritma SSL baru.
Silakan lihat instalasi untuk menginstal USB terlebih dahulu. Kami menyediakan tutorial colab untuk:
Langkah1: Periksa lingkungan Anda
Anda perlu menginstal driver Docker dan NVIDIA dengan benar terlebih dahulu. Untuk menggunakan GPU dalam wadah Docker, Anda juga perlu menginstal NVIDIA-DOCKER2 (Panduan Instalasi). Kemudian, silakan periksa versi CUDA Anda melalui nvidia-smi
Langkah2: Klon proyek
git clone https://github.com/microsoft/Semi-supervised-learning.gitLangkah3: Bangun gambar Docker
Sebelum membangun gambar, Anda dapat memodifikasi DockerFile sesuai dengan versi CUDA Anda. Versi CUDA yang kami gunakan adalah 11,6. Anda dapat mengubah tag gambar dasar sesuai dengan situs ini. Anda juga perlu mengubah --extra-index-url sesuai dengan versi CUDA Anda untuk menginstal versi Pytorch yang benar. Anda dapat memeriksa URL melalui situs web Pytorch.
Gunakan perintah ini untuk membangun gambar
cd Semi-supervised-learning && docker build -t semilearn . Pekerjaan selesai. Anda dapat menggunakan gambar yang baru saja Anda bangun untuk proyek Anda sendiri. Jangan lupa menggunakan argumen --gpu saat Anda ingin menggunakan GPU dalam wadah.
Berikut adalah contoh untuk melatih FixMatch di CIFAR-100 dengan 200 label. Melatih algoritma yang didukung lainnya (pada dataset lain dengan pengaturan label yang berbeda) dapat ditentukan oleh file konfigurasi:
python train.py --c config/usb_cv/fixmatch/fixmatch_cifar100_200_0.yamlSetelah pelatihan, Anda dapat memeriksa kinerja evaluasi pada log pelatihan, atau menjalankan skrip evaluasi:
python eval.py --dataset cifar100 --num_classes 100 --load_path /PATH/TO/CHECKPOINT
Periksa dokumentasi yang sedang berkembang untuk membuat algoritma SSL Anda sendiri!
Untuk contoh lebih lanjut, silakan merujuk ke dokumentasi
(kembali ke atas)
Silakan merujuk hasil untuk hasil benchmark pada tugas yang berbeda.
(kembali ke atas)
TODO: Tambahkan model pra-terlatih.
(kembali ke atas)
Lihat masalah terbuka untuk daftar lengkap fitur yang diusulkan (dan masalah yang diketahui).
(kembali ke atas)
Proyek ini menyambut kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda untuk menyetujui perjanjian lisensi kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar -benar melakukannya, beri kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.opensource.microsoft.com.
Saat Anda mengirimkan permintaan tarik, bot CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghiasi PR secara tepat (misalnya, pemeriksaan status, komentar). Cukup ikuti instruksi yang disediakan oleh bot. Anda hanya perlu melakukan ini sekali di semua repo menggunakan CLA kami.
Proyek ini telah mengadopsi kode perilaku open source Microsoft. Untuk informasi lebih lanjut, lihat FAQ Kode Perilaku atau hubungi [email protected] dengan pertanyaan atau komentar tambahan.
Jika Anda memiliki saran yang akan membuat USB lebih baik, silakan garpu repo dan buat permintaan tarik. Anda juga bisa membuka masalah dengan tag "peningkatan". Jangan lupa memberi proyek bintang! Terima kasih lagi!
git checkout -b your_name/your_branch )git commit -m 'Add some features' )git push origin your_name/your_branch )(kembali ke atas)
Proyek ini dapat berisi merek dagang atau logo untuk proyek, produk, atau layanan. Penggunaan resmi merek dagang atau logo Microsoft tunduk dan harus mengikuti pedoman merek dagang & merek Microsoft. Penggunaan merek dagang atau logo Microsoft dalam versi yang dimodifikasi dari proyek ini tidak boleh menyebabkan kebingungan atau menyiratkan sponsor Microsoft. Setiap penggunaan merek dagang atau logo pihak ketiga tunduk pada kebijakan pihak ketiga tersebut.
Didistribusikan di bawah lisensi MIT. Lihat LICENSE.txt untuk informasi lebih lanjut.
(kembali ke atas)
Komunitas USB dipertahankan oleh:
(kembali ke atas)
Silakan mengutip kami jika Anda baik -baik saja proyek ini bermanfaat untuk proyek/kertas Anda:
@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}
}
Kami berterima kasih kepada proyek -proyek berikut untuk referensi membuat USB:
(kembali ke atas)