
USB : Объединенный полупроницаемый эталон обучения для CV, NLP и Audio Classification
Документ · эталон · демонстрация · Документы · Выпуск · Блог · Блог (Pytorch) · Блог (китайский) · Видео · Видео (китайское)
[16.03.2024] Добавьте EPASS, SEQUENCEMATCH и REFIXTATCH. Исправлено несколько опечаток.
[07/07/2023] Добавьте DifixMatch. Исправлены некоторые ошибки. Выпустите Semilearn = 0,3,1/
[06/01/2023] USB официально присоединился к экосистеме Pytorch! [Блог Pytorch]
[30.01.2023] Обновление Semilearn == 0.3.0. Добавьте Freematch и Softmatch. Добавить несбалансированные алгоритмы. Обновите результаты и добавьте поддержку WANDB. См. Для получения подробной информации. [Результаты] [logs] [wandb]. Старые классические журналы можно найти здесь: [Журнал TorchSSL].
[16.10.2022] Выпущены Ссылка на набор данных и инструкции по процессу! [Наборы данных]
[13.10.2022] Мы закончили версию «Готовой камеры» с обновленными [результатами]. [OpenReview]
[10/06/2022] Обучающие журналы и результаты USB были обновлены! Доступный набор данных скоро будет загружен. [Журналы] [Результаты]
[17.09.2022] Документ USB был принят набором данных Neurips 2022 и контрольной дорожкой! [OpenReview]
[21.08.2022] USB был выпущен!
USB -это пакет Pytorch на основе Pytorch для полупрофильного обучения (SSL). Это простой в использовании/расширение, доступно для небольших групп, и является всеобъемлющим для разработки и оценки алгоритмов SSL. USB обеспечивает реализацию 14 алгоритмов SSL, основанных на регуляризации последовательности, и 15 задач для оценки из CV, NLP и аудиосистема.

(Вернуться к вершине)
Это пример того, как настроить USB на местном уровне. Чтобы получить локальную копию, запустить выполнение этих простых примеров.
USB построен на Pytorch, с Tourchvision, Torchaudio и Transformers.
Чтобы установить необходимые пакеты, вы можете создать среду 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Мы предоставляем 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. Для использования графического процессора в контейнере Docker вам также необходимо установить Nvidia-Docker2 (Руководство по установке). Затем, пожалуйста, проверьте свою версию CUDA через nvidia-smi
Шаг 2: клонировать проект
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 , когда вы хотите использовать графический процессор в контейнере.
Вот пример для обучения 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 (например, проверка состояния, комментарий). Просто следуйте инструкциям, предоставленным ботом. Вам нужно будет сделать это только один раз во всех репо, используя наш CLA.
Этот проект принял код поведения с открытым исходным кодом 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:
(Вернуться к вершине)