
USB :CV、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を参照してください。 [結果] [logs] [wandb]。古いクラシックログはここにあります:[TorchsSl Log]。
[10/16/2022]データセットのダウンロードリンクとプロセスの手順をリリースしました! [データセット]
[10/13/2022]更新された[結果]を使用して、カメラ対応バージョンを完成させました。 [OpenReview]
[10/06/2022] USBのトレーニングログと結果が更新されました!利用可能なデータセットはまもなくアップロードされます。 [logs] [結果]
[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環境を作成できます。
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パッケージSemilearnを迅速に提供します。
pip install semilearn(トップに戻る)
また、独自のSSLアルゴリズムを開発し、USBをクローニングすることで評価することもできます。
git clone https://github.com/microsoft/Semi-supervised-learning.git(トップに戻る)
ダウンロードと処理の詳細な手順は、データセットのダウンロードに示されています。アルゴリズムを実行または開発する前に、データセットをダウンロードするためにフォローしてください。
(トップに戻る)
USBは使いやすく拡張できます。 Bellowing Examplesを使用すると、USBに精通して迅速に使用したり、独自のデータセットで既存のSSLアルゴリズムを評価したり、新しいSSLアルゴリズムを開発したりします。
最初にUSBをインストールするには、インストールを参照してください。次のようなコラブチュートリアルを提供します。
ステップ1:環境を確認してください
最初にDockerとNvidiaのドライバーを適切にインストールする必要があります。 DockerコンテナでGPUを使用するには、nvidia-docker2(インストールガイド)をインストールする必要があります。次に、 nvidia-smiを介してcudaバージョンを確認してください
ステップ2:プロジェクトをクローンします
git clone https://github.com/microsoft/Semi-supervised-learning.gitステップ3:Docker画像を作成します
画像を構築する前に、CUDAバージョンに従ってDockerFileを変更できます。使用するCUDAバージョンは11.6です。このサイトに従ってベース画像タグを変更できます。また、正しいバージョンのPytorchをインストールするには、CUDAバージョンに従って--extra-index-url変更する必要があります。 Pytorch WebサイトからURLを確認できます。
このコマンドを使用して画像を作成します
cd Semi-supervised-learning && docker build -t semilearn .仕事が完了しました。自分のプロジェクトのために作成したばかりの画像を使用できます。容器でGPUを使用する場合は、引数--gpuを使用することを忘れないでください。
200個のラベルを備えたCIFAR-100で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を使用して、すべてのレポでこれを1回だけ行う必要があります。
このプロジェクトは、Microsoftのオープンソース行動規範を採用しています。詳細については、FAQのコードを参照するか、追加の質問やコメントについては[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のスポンサーシップを暗示したりしてはなりません。サードパーティの商標またはロゴの使用は、これらのサードパーティのポリシーの対象となります。
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の作成を参照してくれた以下のプロジェクトに感謝します。
(トップに戻る)