solo-learn 项目介绍
项目概述
solo-learn 是一个基于 PyTorch Lightning 的自监督学习库,专注于无监督视觉表征学习。该库的目标是提供最先进的自监督方法,并在一个可比较的环境中实现训练技巧。尽管 solo-learn 是一个独立的库,但用户可以将其模型用于其他项目。
最新动态
- 2024年1月14日:引入了一系列稳定性改进,并添加了 All4One 方法。
- 2023年1月7日:新增了 ImageNet 上 MAE 的结果、检查点和配置。
- 2022年9月27日:采用新的配置系统 OmegaConf/Hydra,增强了清晰度和灵活性。
项目路线图
- 重新编写文档以提高清晰度。
- 提供更好和最新的教程。
- 增加性能相关的测试,确保方法在更新后表现一致。
- 持续添加新方法。
可用方法
solo-learn 支持多种自监督学习方法,包括但不限于 Barlow Twins、BYOL、DeepCluster V2、DINO、MAE、MoCo V2+、SimCLR、SwAV 等。
额外功能
特征提取模块
- 支持 ResNet、ViT、ConvNeXt 等多种网络架构。
数据处理
- 使用 Nvidia Dali 提高数据处理速度,支持灵活的增强策略。
评估
- 提供在线和离线 K-NN 评估,支持 UMAP 进行特征空间可视化。
训练技巧
- 利用 PyTorch Lightning 的多项特性,如混合精度、梯度累积等,支持 channel last 转换和多重裁剪。
记录
- 支持通过 WandB 云端记录训练指标。
系统需求
- 基本依赖:torch, torchvision, tqdm, 等。
- 可选依赖:nvidia-dali, matplotlib, seaborn, 等。
安装指南
首先克隆仓库,然后使用以下命令安装:
pip3 install .[dali,umap,h5] --extra-index-url https://developer.download.nvidia.com/compute/redist
或者如果不需要 Dali、UMAP 支持,可以使用:
pip3 install .
训练
该库提供了多种 Bash 脚本和配置文件供预训练模式参考。对于线性评估和 K-NN 评估等,可以参考相应的脚本。
教程
请查阅我们的文档和教程,详情包括:
- 基础概览
- 离线线性评估
- 对象检测
- 添加新方法的教程
模型库
提供可预训练模型下载,可以通过指定的脚本下载不同数据集的预训练模型。
结果
提供了多个数据集上不同方法的实验结果和检查点,用户可以根据需要进行下载和复现。
训练效率
在使用 DALI 和未使用情况下进行训练效率对比,结果表明使用 DALI 可以显著加速训练过程。
引用信息
如在研究中使用 solo-learn,请引用其发布的相关论文。在具体描述中,详细包含了引用格式。
通过简单易懂的语言,以上详细介绍了 solo-learn 项目,使其技术和功能快速被感知和理解。无论是研究人员、工程师还是学生,这是一个研究和实施自动化视觉表征学习的有力工具。