
USB : CV, NLP 및 오디오 분류에 대한 통합 반 감독 학습 벤치 마크
종이 · 벤치 마크 · 데모 · DOCS · 문제 · 블로그 · 블로그 (Pytorch) · 블로그 (중국어) · 비디오 · 비디오 (중국어)
[03/16/2024] EPASS, SequenceMatch 및 refixMatch를 추가하십시오. 오타를 수정했습니다.
[07/07/2023] DefixMatch를 추가하십시오. 일부 버그를 수정했습니다. SemiLearn 릴리스 = 0.3.1/
[06/01/2023] USB는 공식적으로 Pytorch Ecosystem에 합류했습니다! [Pytorch 블로그]
[01/30/2023] Semilearn == 0.3.0 업데이트. 프리치와 소프트 매치를 추가하십시오. 불균형 알고리즘을 추가하십시오. 결과를 업데이트하고 WANDB 지원을 추가하십시오. 자세한 내용은 Change_Log를 참조하십시오. [결과] [로그] [wandb]. 이전 클래식 로그는 여기에서 찾을 수 있습니다 : [Torchssl log].
[10/16/2022] 데이터 세트 다운로드 링크 및 프로세스 지침이 출시되었습니다! [데이터 세트]
[10/13/2022] 업데이트 된 [결과]로 카메라 준비 버전을 완료했습니다. [OpenReview]
[10/06/2022] 교육 로그 및 USB 결과가 업데이트되었습니다! 사용 가능한 데이터 세트가 곧 업로드됩니다. [로그] [결과]
[09/17/2022] USB 용지는 Neurips 2022 데이터 세트와 벤치 마크 트랙에 의해 받아 들여졌습니다! [OpenReview]
[08/21/2022] USB가 출시되었습니다!
USB는 반 감독 학습 (SSL)을위한 Pytorch 기반 Python 패키지입니다. 사용하기 쉬운/확장, 소그룹에 저렴하며 SSL 알고리즘을 개발하고 평가하기위한 포괄적입니다. USB는 일관성 정규화를 기반으로 14 개의 SSL 알고리즘의 구현과 CV, NLP 및 오디오 도메인의 평가를위한 15 개의 작업을 제공합니다.

(뒤로 맨 위로)
이것은 로컬로 USB를 설정하는 방법의 예입니다. 로컬 사본을 얻으려면 실행을 실행하십시오. 간단한 예제 단계를 따르십시오.
USB는 Torchvision, Torchaudio 및 Transformers와 함께 Pytorch에 구축됩니다.
필요한 패키지를 설치하려면 콘다 환경을 만들 수 있습니다.
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우리는 데이터에서 지원되는 SSL 알고리즘을 신속하게 교육/테스트하려는 사용자에게 USB의 Python 패키지 세미 엘을 제공합니다.
pip install semilearn(뒤로 맨 위로)
자신의 SSL 알고리즘을 개발하고 USB를 복제하여 평가할 수도 있습니다.
git clone https://github.com/microsoft/Semi-supervised-learning.git(뒤로 맨 위로)
다운로드 및 처리에 대한 자세한 지침은 데이터 세트 다운로드에 표시됩니다. 알고리즘을 실행하거나 개발하기 전에 데이터 세트를 다운로드하십시오.
(뒤로 맨 위로)
USB는 사용하기 쉽고 확장합니다. Bellowing 예제를 살펴보면 빠른 사용을 위해 USB에 익숙해 지거나 자체 데이터 세트에서 기존 SSL 알고리즘을 평가하거나 새로운 SSL 알고리즘을 개발하는 데 도움이됩니다.
USB를 먼저 설치하려면 설치를 참조하십시오. 우리는 다음에 대한 colab 튜토리얼을 제공합니다.
1 단계 : 환경을 확인하십시오
먼저 Docker 및 Nvidia 드라이버를 올바르게 설치해야합니다. Docker 컨테이너에서 GPU를 사용하려면 NVIDIA-DOCKER2 (설치 안내서)를 설치해야합니다. 그런 다음 nvidia-smi 를 통해 Cuda 버전을 확인하십시오
2 단계 : 프로젝트를 복제하십시오
git clone https://github.com/microsoft/Semi-supervised-learning.git3 단계 : Docker 이미지를 작성하십시오
이미지를 만들기 전에 CUDA 버전에 따라 dockerfile을 수정할 수 있습니다. 우리가 사용하는 CUDA 버전은 11.6입니다. 이 사이트에 따라 기본 이미지 태그를 변경할 수 있습니다. Pytorch의 올바른 버전을 설치하려면 Cuda 버전에 따라 --extra-index-url 변경해야합니다. Pytorch 웹 사이트를 통해 URL을 확인할 수 있습니다.
이 명령을 사용하여 이미지를 작성하십시오
cd Semi-supervised-learning && docker build -t semilearn . 작업이 완료되었습니다. 자신의 프로젝트를 위해 방금 구축 한 이미지를 사용할 수 있습니다. 컨테이너에서 GPU를 사용하려면 인수 --gpu 사용하는 것을 잊지 마십시오.
다음은 CIFAR-100에서 200 개의 레이블로 FixMatch를 훈련시키는 예입니다. 다른 지원되는 알고리즘 (다른 레이블 설정이 다른 다른 데이터 세트에서)을 구성 파일로 지정할 수 있습니다.
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을 적절하게 장식 해야하는지 자동으로 결정합니다 (예 : 상태 점검, 댓글). 봇이 제공 한 지침을 따르십시오. CLA를 사용하여 모든 저장소에서 한 번만이 작업을 수행하면됩니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 추가 질문이나 의견이 있으면 행동 강령 FAQ 또는 [email protected]에 문의하십시오.
USB가 더 좋게 만드는 제안이 있다면, repo를 포크하고 풀 요청을 만듭니다. "Enhancement"태그에 문제를 열면 간단히 문제를 열 수도 있습니다. 프로젝트에 별을주는 것을 잊지 마십시오! 다시 한 번 감사드립니다!
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 작성에 대한 참조에 대한 다음 프로젝트에 감사드립니다.
(뒤로 맨 위로)