TorchSSL 项目介绍
TorchSSL 是一个基于 PyTorch 的半监督学习工具箱,旨在促进半监督学习算法的发展和公平比较。然而,目前这个项目已被弃用,不再进行维护和更新。作者建议使用 USB(升级版本的 TorchSSL),因为其训练时间仅为 TorchSSL 的 12.5%,并能产生更好的结果。关于 TorchSSL 的后续修改和合并的代码请求不再更新结果。
背景信息
TorchSSL 是专为半监督学习构建的全面工具箱,兼具灵活性和可扩展性。此项目是 2021 年 NeurIPS 上公布的论文《FlexMatch: Boosting Semi-supervised Learning with Curriculum Pseudo Labeling》的官方实现。项目中集成了 9 种流行的半监督学习算法,旨在促进这一领域的发展。
支持的算法
TorchSSL 支持多个半监督学习算法,除了作为基线的全监督学习外,还包括:
- PiModel
- MeanTeacher
- PseudoLabel
- VAT(虚拟对抗性训练)
- MixMatch
- UDA(无监督数据增强)
- ReMixMatch
- FixMatch
- FlexMatch
- FreeMatch
- SoftMatch
此外,TorchSSL 实现了其独特的课程伪标签(Curriculum Pseudo Labeling)方法,用于 Pseudo-Label 和 UDA。
支持的数据集
TorchSSL 支持多种流行的数据集,这些数据集在半监督学习研究中非常常见,包括:
- CIFAR-10
- CIFAR-100
- STL-10
- SVHN
- ImageNet
项目成果
TorchSSL 提供了多个数据集下算法的最佳准确性及其标准误差。这些结果可用于学术引用,并能帮助研究人员比较不同算法的性能。在提供的结果中,CIFAR-10 和 CIFAR-100 的 "40", "250", "1000" 等标识符表示不同数量的标记样本。在 STL-10 和 SVHN 数据集上,也进行了一系列实验,最终也在更大规模的数据集 ImageNet 上进行了验证。
项目的使用
使用 TorchSSL 前,用户需要先克隆代码库,并确保已安装 Anaconda 或 Miniconda,然后通过运行 conda env create -f environment.yml
初始化环境。在进行实验时,只需修改对应算法的配置文件即可开始。若想自定义算法,用户可以创建新目录并书写自己的模型文件及配置文件。
项目维护
尽管 TorchSSL 不再更新,但用户仍然可以对其提出问题、建议,或者提供代码贡献。如有加入 TorchSSL 团队的意愿,用户可以联系项目负责人。团队计划扩展更多的SSL算法,并在计算机视觉之外,向自然语言处理和语音领域扩展。