[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-vturrisi--solo-learn":3,"tool-vturrisi--solo-learn":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":76,"owner_url":78,"languages":79,"stars":87,"forks":88,"last_commit_at":89,"license":90,"difficulty_score":32,"env_os":91,"env_gpu":92,"env_ram":93,"env_deps":94,"category_tags":108,"github_topics":109,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":129,"updated_at":130,"faqs":131,"releases":161},4855,"vturrisi\u002Fsolo-learn","solo-learn","solo-learn: a library of self-supervised methods for visual representation learning powered by Pytorch Lightning","solo-learn 是一个基于 PyTorch Lightning 构建的开源库，专注于自监督视觉表示学习。它旨在为研究人员和开发者提供一个统一、高效的实验环境，集成了多种最先进的自监督学习方法（如 SimCLR、BYOL、MoCo V3、MAE 等），解决了不同算法实现分散、难以公平对比以及复现成本高的问题。\n\n无论是希望快速验证新想法的学术研究者，还是需要将自监督预训练模型应用于实际项目的工程师，都能从 solo-learn 中受益。该库不仅支持开箱即用的主流算法，还内置了丰富的训练技巧与优化策略，例如混合精度训练、多裁剪增强、LARS 优化器改进以及对 ConvNeXt 等现代架构的支持。其独特的配置系统基于 OmegaConf 和 Hydra，提供了极高的灵活性与清晰度，同时支持断点续训和自动化评估流程，大幅降低了实验门槛。通过标准化的接口设计，用户既可以利用全套流程进行端到端训练，也能轻松提取模型用于外部项目，是探索无标签图像数据价值的得力助手。","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvturrisi_solo-learn_readme_0f0c7cacca6d.png\" width=\"250\"\u002F>\n\u003C\u002Fp>\n\n\u003Cdiv align=\"center\">\n\n[![tests](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Factions\u002Fworkflows\u002Ftests.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Factions\u002Fworkflows\u002Ftests.yml)\n[![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvturrisi_solo-learn_readme_13d664e1afd7.png)](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fvturrisi\u002Fsolo-learn\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg?token=WLU9UU17XZ)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fvturrisi\u002Fsolo-learn)\n\n\u003C\u002Fdiv>\n\n# solo-learn\nA library of self-supervised methods for unsupervised visual representation learning powered by PyTorch Lightning.\nWe aim at providing SOTA self-supervised methods in a comparable environment while, at the same time, implementing training tricks.\nThe library is self-contained, but it is possible to use the models outside of solo-learn. **More details in our [paper](#citation)**.\n\n---\n\n## News\n* **[Jan 14 2024]**: :clap: Bunch of stability improvements during 2023 :) Also added [All4One](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FICCV2023\u002Fhtml\u002FEstepa_All4One_Symbiotic_Neighbour_Contrastive_Learning_via_Self-Attention_and_Redundancy_Reduction_ICCV_2023_paper.html).\n* **[Jan 07 2023]**: :diving_mask: Added results, checkpoints and configs for MAE on ImageNet. Thanks to [HuangChiEn](https:\u002F\u002Fgithub.com\u002FHuangChiEn).\n* **[Dec 31 2022]**: :stars: Shiny new logo! Huge thanks to [Luiz](https:\u002F\u002Fwww.instagram.com\u002Flinhaaspera\u002F)!\n* **[Sep 27 2022]**: :pencil: Brand new config system using OmegaConf\u002FHydra. Adds more clarity and flexibility. New tutorials will follow soon!\n* **[Aug 04 2022]**: :paintbrush: Added [MAE](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.06377) and supports finetuning the backbone with `main_linear.py`, mixup, cutmix and [random augment](https:\u002F\u002Farxiv.org\u002Fabs\u002F1909.13719).\n* **[Jul 13 2022]**: :sparkling_heart: Added support for [H5](https:\u002F\u002Fdocs.h5py.org\u002Fen\u002Fstable\u002Findex.html) data, improved scripts and data handling.\n* **[Jun 26 2022]**: :fire: Added [MoCo V3](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.02057).\n* **[Jun 10 2022]**: :bomb: Improved LARS.\n* **[Jun 09 2022]**: :lollipop: Added support for [WideResnet](https:\u002F\u002Farxiv.org\u002Fabs\u002F1605.07146), multicrop for SwAV and equalization data augmentation.\n* **[May 02 2022]**: :diamond_shape_with_a_dot_inside: Wrapped Dali with a DataModule, added auto resume for linear eval and Wandb run resume.\n* **[Apr 12 2022]**: :rainbow: Improved design of models and added support to train with a fraction of data.\n* **[Apr 01 2022]**: :mag: Added the option to use [channel last conversion](https:\u002F\u002Fpytorch.org\u002Ftutorials\u002Fintermediate\u002Fmemory_format_tutorial.html#converting-existing-models) which considerably decreases training times.\n* **[Feb 04 2022]**: :partying_face: Paper got accepted to JMLR.\n* **[Jan 31 2022]**: :eye: Added ConvNeXt support with timm.\n* **[Dec 20 2021]**: :thermometer: Added ImageNet results, scripts and checkpoints for MoCo V2+.\n* **[Dec 05 2021]**: :notes: Separated [SupCon](https:\u002F\u002Farxiv.org\u002Fabs\u002F2004.11362) from SimCLR and added runs.\n* **[Dec 01 2021]**: :fountain: Added [PoolFormer](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.11418).\n* **[Nov 29 2021]**: :bangbang: Breaking changes! Update your versions!!!\n* **[Nov 29 2021]**: :book: New tutorials!\n* **[Nov 29 2021]**: :houses: Added offline K-NN and offline UMAP.\n* **[Nov 29 2021]**: :rotating_light: Updated PyTorch and PyTorch Lightning versions. 10% faster.\n* **[Nov 29 2021]**: :beers: Added code of conduct, contribution instructions, issue templates and UMAP tutorial.\n* **[Nov 23 2021]**: :space_invader: Added [VIbCReg](https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.00783).\n* **[Oct 21 2021]**: :triumph: Added support for object recognition via Detectron v2 and auto resume functionally that automatically tries to resume an experiment that crashed\u002Freached a timeout.\n* **[Oct 10 2021]**: :japanese_ogre: Restructured augmentation pipelines to allow more flexibility and multicrop. Also added multicrop for BYOL.\n* **[Sep 27 2021]**: :pizza: Added [NNSiam](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548), [NNBYOL](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548), new tutorials for implementing new methods [1](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Fadd_new_method.html) and [2](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Fadd_new_method_momentum.html), more testing and fixed issues with custom data and linear evaluation.\n* **[Sep 19 2021]**: :kangaroo: Added online k-NN evaluation.\n* **[Sep 17 2021]**: :robot: Added [ViT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11929) and [Swin](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.14030).\n* **[Sep 13 2021]**: :book: Improved [Docs](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest) and added tutorials for [pretraining](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Foverview.html) and [offline linear eval](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Foffline_linear_eval.html).\n* **[Aug 13 2021]**: :whale: [DeepCluster V2](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.09882) is now available.\n\n---\n\n## Roadmap and help needed\n* Redoing the documentation to improve clarity.\n* Better and up-to-date tutorials.\n* Add performance-related testing to ensure that methods perform the same across updates.\n* Adding new methods (continuous effort).\n\n---\n\n## Methods available\n* [All4One](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FICCV2023\u002Fhtml\u002FEstepa_All4One_Symbiotic_Neighbour_Contrastive_Learning_via_Self-Attention_and_Redundancy_Reduction_ICCV_2023_paper.html)\n* [Barlow Twins](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.03230)\n* [BYOL](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.07733)\n* [DeepCluster V2](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.09882)\n* [DINO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14294)\n* [MAE](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.06377)\n* [MoCo V2+](https:\u002F\u002Farxiv.org\u002Fabs\u002F2003.04297)\n* [MoCo V3](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.02057)\n* [NNBYOL](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548)\n* [NNCLR](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548)\n* [NNSiam](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548)\n* [ReSSL](https:\u002F\u002Farxiv.org\u002Fabs\u002F2107.09282)\n* [SimCLR](https:\u002F\u002Farxiv.org\u002Fabs\u002F2002.05709)\n* [SimSiam](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.10566)\n* [Supervised Contrastive Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2004.11362)\n* [SwAV](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.09882)\n* [VIbCReg](https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.00783)\n* [VICReg](https:\u002F\u002Farxiv.org\u002Fabs\u002F2105.04906)\n* [W-MSE](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.06346)\n\n---\n\n## Extra flavor\n\n### Backbones\n* [ResNet](https:\u002F\u002Farxiv.org\u002Fabs\u002F1512.03385)\n* [WideResNet](https:\u002F\u002Farxiv.org\u002Fabs\u002F1605.07146)\n* [ViT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11929)\n* [Swin](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.14030)\n* [PoolFormer](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.11418)\n* [ConvNeXt](https:\u002F\u002Farxiv.org\u002Fabs\u002F2201.03545)\n\n### Data\n* Increased data processing speed by up to 100% using [Nvidia Dali](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FDALI).\n* Flexible augmentations.\n\n### Evaluation\n* Online linear evaluation via stop-gradient for easier debugging and prototyping (optionally available for the momentum backbone as well).\n* Standard offline linear evaluation.\n* Online and offline K-NN evaluation.\n* Automatic feature space visualization with UMAP.\n\n### Training tricks\n* All the perks of PyTorch Lightning (mixed precision, gradient accumulation, clipping, and much more).\n* Channel last conversion\n* Multi-cropping dataloading following [SwAV](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.09882):\n    * **Note**: currently, only SimCLR, BYOL and SwAV support this.\n* Exclude batchnorm and biases from weight decay and LARS.\n* No LR scheduler for the projection head (as in SimSiam).\n\n### Logging\n* Metric logging on the cloud with [WandB](https:\u002F\u002Fwandb.ai\u002Fsite)\n* Custom model checkpointing with a simple file organization.\n\n---\n## Requirements\n* torch\n* torchvision\n* tqdm\n* einops\n* wandb\n* pytorch-lightning\n* lightning-bolts\n* torchmetrics\n* scipy\n* timm\n\n**Optional**:\n* nvidia-dali\n* matplotlib\n* seaborn\n* pandas\n* umap-learn\n\n---\n\n## Installation\n\nFirst clone the repo.\n\nThen, to install solo-learn with [Dali](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FDALI) and\u002For UMAP support, use:\n```bash\npip3 install .[dali,umap,h5] --extra-index-url https:\u002F\u002Fdeveloper.download.nvidia.com\u002Fcompute\u002Fredist\n```\n\nIf no Dali\u002FUMAP\u002FH5 support is needed, the repository can be installed as:\n```bash\npip3 install .\n```\n\nFor local development:\n```bash\npip3 install -e .[umap,h5]\n# Make sure you have pre-commit hooks installed\npre-commit install\n```\n\n**NOTE:** if you are having trouble with dali, install it following their [guide](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FDALI).\n\n**NOTE 2:** consider installing [Pillow-SIMD](https:\u002F\u002Fgithub.com\u002Fuploadcare\u002Fpillow-simd) for better loading times when not using Dali.\n\n**NOTE 3:** Soon to be on pip.\n\n---\n\n## Training\n\nFor pretraining the backbone, follow one of the many bash files in `scripts\u002Fpretrain\u002F`.\nWe are now using [Hydra](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fhydra) to handle the config files, so the common syntax is something like:\n```bash\npython3 main_pretrain.py \\\n    # path to training script folder\n    --config-path scripts\u002Fpretrain\u002Fimagenet-100\u002F \\\n    # training config name\n    --config-name barlow.yaml\n    # add new arguments (e.g. those not defined in the yaml files)\n    # by doing ++new_argument=VALUE\n    # pytorch lightning's arguments can be added here as well.\n```\n\nAfter that, for offline linear evaluation, follow the examples in `scripts\u002Flinear` or `scripts\u002Ffinetune` for finetuning the whole backbone.\n\nFor k-NN evaluation and UMAP visualization check the scripts in `scripts\u002F{knn,umap}`.\n\n**NOTE:** Files try to be up-to-date and follow as closely as possible the recommended parameters of each paper, but check them before running.\n\n---\n\n## Tutorials\n\nPlease, check out our [documentation](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest) and tutorials:\n* [Overview](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Foverview.html)\n* [Offline linear eval](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Foffline_linear_eval.html)\n* [Object detection](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdownstream\u002Fobject_detection\u002FREADME.md)\n* [Adding a new method](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Ftutorials\u002Fadd_new_method.rst)\n* [Adding a new momentum method](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Ftutorials\u002Fadd_new_method_momentum.rst)\n* [Visualizing features with UMAP](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Ftutorials\u002Fumap.rst)\n* [Offline k-NN](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Ftutorials\u002Fknn.rst)\n\nIf you want to contribute to solo-learn, make sure you take a look at [how to contribute](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002F.github\u002FCONTRIBUTING.md) and follow the [code of conduct](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002F.github\u002FCODE_OF_CONDUCT.md)\n\n---\n\n## Model Zoo\n\nAll pretrained models avaiable can be downloaded directly via the tables below or programmatically by running one of the following scripts\n`zoo\u002Fcifar10.sh`, `zoo\u002Fcifar100.sh`, `zoo\u002Fimagenet100.sh` and `zoo\u002Fimagenet.sh`.\n\n---\n\n## Results\n\n**Note:** hyperparameters may not be the best, we will be re-running the methods with lower performance eventually.\n\n### CIFAR-10\n\n| Method       | Backbone | Epochs | Dali | Acc@1 | Acc@5 | Checkpoint |\n|--------------|:--------:|:------:|:----:|:--------------:|:--------------:|:----------:|\n| All4One      | ResNet18 |  1000  |  :x: |      93.24     |     99.88      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1dtYmZiftruQ7B2PQ8fo44wguCZ0eSzAd?usp=sharing) |\n| Barlow Twins | ResNet18 |  1000  |  :x: |      92.10     |     99.73      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1L5RAM3lCSViD2zEqLtC-GQKVw6mxtxJ_?usp=sharing) |\n| BYOL         | ResNet18 |  1000  |  :x: |      92.58     |     99.79      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1KxeYAEE7Ev9kdFFhXWkPZhG-ya3_UwGP?usp=sharing) |\n|DeepCluster V2| ResNet18 |  1000  |  :x: |      88.85     |     99.58      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1tkEbiDQ38vZaQUsT6_vEpxbDxSUAGwF-?usp=sharing) |\n| DINO         | ResNet18 |  1000  |  :x: |      89.52     |     99.71      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1vyqZKUyP8sQyEyf2cqonxlGMbQC-D1Gi?usp=sharing) |\n| MoCo V2+     | ResNet18 |  1000  |  :x: |      92.94     |     99.79      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1ruNFEB3F-Otxv2Y0p62wrjA4v5Fr2cKC?usp=sharing) |\n| MoCo V3      | ResNet18 |  1000  |  :x: |      93.10     |     99.80      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1KwZTshNEpmqnYJcmyYPvfIJ_DNwqtAVj?usp=sharing) |\n| NNCLR        | ResNet18 |  1000  |  :x: |      91.88     |     99.78      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1xdCzhvRehPmxinphuiZqFlfBwfwWDcLh?usp=sharing) |\n| ReSSL        | ResNet18 |  1000  |  :x: |      90.63     |     99.62      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1jrFcztY2eO_fG98xPshqOD15pDIhLXp-?usp=sharing) |\n| SimCLR       | ResNet18 |  1000  |  :x: |      90.74     |     99.75      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1mcvWr8P2WNJZ7TVpdLHA_Q91q4VK3y8O?usp=sharing) |\n| Simsiam      | ResNet18 |  1000  |  :x: |      90.51     |     99.72      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1OO_igM3IK5oDw7GjQTNmdfg2I1DH3xOk?usp=sharing) |\n| SupCon       | ResNet18 |  1000  |  :x: |      93.82     |     99.65      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1VwZ9TrJXCpnxyo7P_l397yGrGH-DAUv-?usp=sharing) |\n| SwAV         | ResNet18 |  1000  |  :x: |      89.17     |     99.68      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1nlJH4Ljm8-5fOIeAaKppQT6gtsmmW1T0?usp=sharing) |\n| VIbCReg      | ResNet18 |  1000  |  :x: |      91.18     |     99.74      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1XvxUOnLPZlC_-OkeuO7VqXT7z9_tNVk7?usp=sharing) |\n| VICReg       | ResNet18 |  1000  |  :x: |      92.07     |     99.74      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F159ZgCxocB7aaHxwNDubnAWU71zXV9hn-?usp=sharing) |\n| W-MSE        | ResNet18 |  1000  |  :x: |      88.67     |     99.68      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1xPCiULzQ4JCmhrTsbxBp9S2jRZ01KiVM?usp=sharing) |\n\n\n### CIFAR-100\n\n| Method       | Backbone | Epochs | Dali | Acc@1 | Acc@5 | Checkpoint |\n|--------------|:--------:|:------:|:----:|:--------------:|:--------------:|:----------:|\n| All4One      | ResNet18 |  1000  |  :x: |      72.17     |     93.35      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1oQcC80XPr-Wxhjs-PEqD_8VhUa_izqeZ?usp=sharing) |\n| Barlow Twins | ResNet18 |  1000  |  :x: |      70.90     |     91.91      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1hDLSApF3zSMAKco1Ck4DMjyNxhsIR2yq?usp=sharing) |\n| BYOL         | ResNet18 |  1000  |  :x: |      70.46     |     91.96      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1hwsEdsfsUulD2tAwa4epKK9pkSuvFv6m?usp=sharing) |\n|DeepCluster V2| ResNet18 |  1000  |  :x: |      63.61     |     88.09      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1gAKyMz41mvGh1BBOYdc_xu6JPSkKlWqK?usp=sharing) |\n| DINO         | ResNet18 |  1000  |  :x: |      66.76     |     90.34      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1TxeZi2YLprDDtbt_y5m29t4euroWr1Fy?usp=sharing) |\n| MoCo V2+     | ResNet18 |  1000  |  :x: |      69.89     |     91.65      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F15oWNM16vO6YVYmk_yOmw2XUrFivRXam4?usp=sharing) |\n| MoCo V3      | ResNet18 |  1000  |  :x: |      68.83     |     90.57      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Hcf9kMIADKydfxvXLquY9nv7sfNaJ3v6?usp=sharing) |\n| NNCLR        | ResNet18 |  1000  |  :x: |      69.62     |     91.52      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Dz72o0-5hugYPW1kCCQDBb0Xi3kzMLzu?usp=sharing) |\n| ReSSL        | ResNet18 |  1000  |  :x: |      65.92     |     89.73      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1aVZs9cHAu6Ccz8ILyWkp6NhTsJGBGfjr?usp=sharing) |\n| SimCLR       | ResNet18 |  1000  |  :x: |      65.78     |     89.04      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F13pGPcOO9Y3rBoeRVWARgbMFEp8OXxZa0?usp=sharing) |\n| Simsiam      | ResNet18 |  1000  |  :x: |      66.04     |     89.62      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1AJUPmsIHh_nqEcFe-Vcz2o4ruEibFHWO?usp=sharing) |\n| SupCon       | ResNet18 |  1000  |  :x: |      70.38     |     89.57      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F15C68oHPDMAOPtmBAm_Xw6YI6GgOW00gM?usp=sharing) |\n| SwAV         | ResNet18 |  1000  |  :x: |      64.88     |     88.78      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1U_bmyhlPEN941hbx0SdRGOT4ivCarQB9?usp=sharing) |\n| VIbCReg      | ResNet18 |  1000  |  :x: |      67.37     |     90.07      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F19u3p1maX3xqwoCHNrqSDb98J5fRvd_6v?usp=sharing) |\n| VICReg       | ResNet18 |  1000  |  :x: |      68.54     |     90.83      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1AHmVf_Zl5fikkmR4X3NWlmMOnRzfv0aT?usp=sharing) |\n| W-MSE        | ResNet18 |  1000  |  :x: |      61.33     |     87.26      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1vc9j3RLpVCbECh6o-44oMiE5snNyKPlF?usp=sharing) |\n\n### ImageNet-100\n\n| Method                  | Backbone | Epochs |        Dali        | Acc@1 (online) | Acc@1 (offline) | Acc@5 (online) | Acc@5 (offline) | Checkpoint |\n|-------------------------|:--------:|:------:|:------------------:|:--------------:|:---------------:|:--------------:|:---------------:|:----------:|\n| All4One                 | ResNet18 |   400  | :heavy_check_mark: |      81.93     |     -       |      96.23     |      -      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1bJCRLP5Rz_JEylNq9C4sY3ccYZSchUGR?usp=sharing) |\n| Barlow Twins :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      80.38     |     80.16       |      95.28     |      95.14      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1rj8RbER9E71mBlCHIZEIhKPUFn437D5O?usp=sharing) |\n| BYOL         :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      80.16     |     80.32       |      95.02     |      94.94      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1riOLjMawD_znO4HYj8LBN2e1X4jXpDE1?usp=sharing) |\n| DeepCluster V2          | ResNet18 |   400  |         :x:        |      75.36     |     75.4        |      93.22     |      93.10      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1d5jPuavrQ7lMlQZn5m2KnN5sPMGhHFo8?usp=sharing) |\n| DINO                    | ResNet18 |   400  | :heavy_check_mark: |      74.84     |     74.92       |      92.92     |      92.78      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1NtVvRj-tQJvrMxRlMtCJSAecQnYZYkqs?usp=sharing) |\n| DINO         :sleepy:   | ViT Tiny |   400  |         :x:        |      63.04     |      TODO       |      87.72     |      TODO       | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F16AfsM-UpKky43kdSMlqj4XRe69pRdJLc?usp=sharing) |\n| MoCo V2+     :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      78.20     |     79.28       |      95.50     |      95.18      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1ItYBtMJ23Yh-Rhrvwjm4w1waFfUGSoKX?usp=sharing) |\n| MoCo V3      :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      80.36     |     80.36       |      95.18     |      94.96      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F15J0JiZsQAsrQler8mbbio-desb_nVoD1?usp=sharing) |\n| MoCo V3      :rocket:   | ResNet50 |   400  | :heavy_check_mark: |      85.48     |     84.58       |      96.82     |      96.70      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1a1VRXGlP50COZ57DPUA_doBmpaxGKpQE?usp=sharing) |\n| NNCLR        :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      79.80     |     80.16       |      95.28     |      95.30      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1QMkq8w3UsdcZmoNUIUPgfSCAZl_LSNjZ?usp=sharing) |\n| ReSSL                   | ResNet18 |   400  | :heavy_check_mark: |      76.92     |     78.48       |      94.20     |      94.24      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1urWIFACLont4GAduis6l0jcEbl080c9U?usp=sharing) |\n| SimCLR       :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      77.64     |     TODO        |      94.06     |      TODO       | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1yxAVKnc8Vf0tDfkixSB5mXe7dsA8Ll37?usp=sharing) |\n| Simsiam                 | ResNet18 |   400  | :heavy_check_mark: |      74.54     |     78.72       |      93.16     |      94.78      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Bc8Xj-Z7ILmspsiEQHyQsTOn4M99F_f5?usp=sharing) |\n| SupCon                  | ResNet18 |   400  | :heavy_check_mark: |      84.40     |     TODO        |      95.72     |      TODO       | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1BzR0nehkCKpnLhi-oeDynzzUcCYOCUJi?usp=sharing) |\n| SwAV                    | ResNet18 |   400  | :heavy_check_mark: |      74.04     |     74.28       |      92.70     |      92.84      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1VWCMM69sokzjVoPzPSLIsUy5S2Rrm1xJ?usp=sharing) |\n| VIbCReg                 | ResNet18 |   400  | :heavy_check_mark: |      79.86     |     79.38       |      94.98     |      94.60      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Q06hH18usvRwj2P0bsmoCkjNUX_0syCK?usp=sharing) |\n| VICReg       :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      79.22     |     79.40       |      95.06     |      95.02      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1uWWR5VBUru8vaHaGeLicS6X3R4CfZsr2?usp=sharing) |\n| W-MSE                   | ResNet18 |   400  | :heavy_check_mark: |      67.60     |     69.06       |      90.94     |      91.22      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1TxubagNV4z5Qs7SqbBcyRHWGKevtFO5l?usp=sharing) |\n\n:rocket: methods where hyperparameters were heavily tuned.\n\n:sleepy: ViT is very compute intensive and unstable, so we are slowly running larger architectures and with a larger batch size. Atm, total batch size is 128 and we needed to use float32 precision. If you want to contribute by running it, let us know!\n\n### ImageNet\n\n| Method       | Backbone | Epochs |        Dali        | Acc@1 (online) | Acc@1 (offline) | Acc@5 (online) | Acc@5 (offline) | Checkpoint | Finetuned Checkpoint\n|--------------|:--------:|:------:|:------------------:|:--------------:|:---------------:|:--------------:|:---------------:|:----------:|:----------:|\n| Barlow Twins | ResNet50 |   100  | :heavy_check_mark: |      67.18     |      67.23      |      87.69     |      87.98      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1IQUIrCOSduAjUJ31WJ1G5tHDZzWUIEft?usp=sharing) | |\n| BYOL         | ResNet50 |   100  | :heavy_check_mark: |      68.63     |      68.37      |      88.80     |      88.66      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1-UXo-MttdrqiEQXfV4Duc93fA3mIdsha?usp=sharing) | |\n| MoCo V2+     | ResNet50 |   100  | :heavy_check_mark: |      62.61     |      66.84      |      85.40     |      87.60      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1NiBDmieEpNqkwrgn_H7bMnEDVAYc8Sk7?usp=sharing) | |\n| MAE          | ViT-B\u002F16 |   100  |        :x:         |      ~     |   81.60 (finetuned)   |      ~     |   95.50 (finetuned)   | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1OuaXCnQ7WeqyKPxfJibAkXoVTx7S8Hbb) | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1c9DGhmLsTTtOu2vc9rodqm89wKtp40C5) |\n\n\n\n## Training efficiency for DALI\n\nWe report the training efficiency of some methods using a ResNet18 with and without DALI (4 workers per GPU) in a server with an Intel i9-9820X and two RTX2080ti.\n\n| Method       |  Dali            |  Total time for 20 epochs  |   Time for 1 epoch   |  GPU memory (per GPU) |\n|--------------|:----------------:|:--------------------------:|:--------------------:|:---------------------:|\n| Barlow Twins | :x:              | 1h 38m 27s                 |  4m 55s              |      5097 MB          |\n|              |:heavy_check_mark:| 43m 2s                     |  2m 10s (56% faster) |      9292 MB          |\n| BYOL         | :x:              | 1h 38m 46s                 |  4m 56s              |      5409 MB          |\n|              |:heavy_check_mark:| 50m 33s                    |  2m 31s (49% faster) |      9521 MB          |\n| NNCLR        | :x:              | 1h 38m 30s                 |  4m 55s              |      5060 MB          |\n|              |:heavy_check_mark:| 42m 3s                     |  2m 6s  (64% faster) |      9244 MB          |\n\n**Note**: GPU memory increase doesn't scale with the model, rather it scales with the number of workers.\n\n---\n\n## Citation\nIf you use solo-learn, please cite our [paper](https:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv23\u002F21-1155.html):\n```bibtex\n@article{JMLR:v23:21-1155,\n  author  = {Victor Guilherme Turrisi da Costa and Enrico Fini and Moin Nabi and Nicu Sebe and Elisa Ricci},\n  title   = {solo-learn: A Library of Self-supervised Methods for Visual Representation Learning},\n  journal = {Journal of Machine Learning Research},\n  year    = {2022},\n  volume  = {23},\n  number  = {56},\n  pages   = {1-6},\n  url     = {http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv23\u002F21-1155.html}\n}\n```\n","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvturrisi_solo-learn_readme_0f0c7cacca6d.png\" width=\"250\"\u002F>\n\u003C\u002Fp>\n\n\u003Cdiv align=\"center\">\n\n[![tests](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Factions\u002Fworkflows\u002Ftests.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Factions\u002Fworkflows\u002Ftests.yml)\n[![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvturrisi_solo-learn_readme_13d664e1afd7.png)](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fvturrisi\u002Fsolo-learn\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg?token=WLU9UU17XZ)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fvturrisi\u002Fsolo-learn)\n\n\u003C\u002Fdiv>\n\n# solo-learn\n一个基于 PyTorch Lightning 的自监督方法库，用于无监督视觉表征学习。我们的目标是在可比较的环境中提供当前最优的自监督方法，并同时实现一系列训练技巧。该库是自包含的，但用户也可以在 solo-learn 外部使用其中的模型。**更多详情请参阅我们的[论文](#citation)**。\n\n---\n\n## 最新动态\n* **[2024年1月14日]**：:clap: 2023年期间进行了大量稳定性改进 :) 同时新增了 [All4One](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FICCV2023\u002Fhtml\u002FEstepa_All4One_Symbiotic_Neighbour_Contrastive_Learning_via_Self-Attention_and_Redundancy_Reduction_ICCV_2023_paper.html)。\n* **[2023年1月7日]**：:diving_mask: 添加了 MAE 在 ImageNet 上的结果、检查点和配置文件。感谢 [HuangChiEn](https:\u002F\u002Fgithub.com\u002FHuangChiEn) 的贡献。\n* **[2022年12月31日]**：:stars: 全新Logo！特别感谢 [Luiz](https:\u002F\u002Fwww.instagram.com\u002Flinhaaspera\u002F)！\n* **[2022年9月27日]**：:pencil: 全新的配置系统，采用 OmegaConf\u002FHydra 框架，提升了清晰度和灵活性。后续将推出更多教程！\n* **[2022年8月4日]**：:paintbrush: 新增 [MAE](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.06377)，并支持通过 `main_linear.py` 对主干网络进行微调，以及 mixup、cutmix 和 [随机增强](https:\u002F\u002Farxiv.org\u002Fabs\u002F1909.13719)。\n* **[2022年7月13日]**：:sparkling_heart: 增加了对 [H5](https:\u002F\u002Fdocs.h5py.org\u002Fen\u002Fstable\u002Findex.html) 数据的支持，优化了脚本和数据处理流程。\n* **[2022年6月26日]**：:fire: 新增了 [MoCo V3](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.02057)。\n* **[2022年6月10日]**：:bomb: 改进了 LARS 优化器。\n* **[2022年6月9日]**：:lollipop: 增加了对 [WideResnet](https:\u002F\u002Farxiv.org\u002Fabs\u002F1605.07146) 的支持，为 SwAV 添加了多尺度裁剪功能，并引入了均衡化数据增强技术。\n* **[2022年5月2日]**：:diamond_shape_with_a_dot_inside: 使用 DataModule 封装了 Dali，增加了线性评估的自动恢复功能以及 Wandb 运行的恢复功能。\n* **[2022年4月12日]**：:rainbow: 改进了模型设计，并支持仅使用部分数据进行训练。\n* **[2022年4月1日]**：:mag: 新增了使用 [通道最后转换](https:\u002F\u002Fpytorch.org\u002Ftutorials\u002Fintermediate\u002Fmemory_format_tutorial.html#converting-existing-models) 的选项，这能显著缩短训练时间。\n* **[2022年2月4日]**：:partying_face: 论文已被 JMLR 接受。\n* **[2022年1月31日]**：:eye: 增加了与 timm 集成的 ConvNeXt 支持。\n* **[2021年12月20日]**：:thermometer: 添加了 MoCo V2+ 在 ImageNet 上的结果、脚本和检查点。\n* **[2021年12月5日]**：:notes: 将 [SupCon](https:\u002F\u002Farxiv.org\u002Fabs\u002F2004.11362) 从 SimCLR 中分离出来，并添加了相关运行记录。\n* **[2021年12月1日]**：:fountain: 新增了 [PoolFormer](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.11418)。\n* **[2021年11月29日]**：:bangbang: 重大变更！请更新版本！！！\n* **[2021年11月29日]**：:book: 新增教程！\n* **[2021年11月29日]**：:houses: 新增了离线 K-NN 和离线 UMAP 功能。\n* **[2021年11月29日]**：:rotating_light: 更新了 PyTorch 和 PyTorch Lightning 的版本，速度提升了约 10%。\n* **[2021年11月29日]**：:beers: 添加了行为准则、贡献指南、问题模板以及 UMAP 教程。\n* **[2021年11月23日]**：:space_invader: 新增了 [VIbCReg](https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.00783)。\n* **[2021年10月21日]**：:triumph: 增加了通过 Detectron v2 进行目标检测的支持，并实现了自动恢复功能，能够自动尝试恢复因崩溃或超时而中断的实验。\n* **[2021年10月10日]**：:japanese_ogre: 重构了数据增强流水线，以提高灵活性并支持多尺度裁剪。同时为 BYOL 添加了多尺度裁剪功能。\n* **[2021年9月27日]**：:pizza: 新增了 [NNSiam](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548)、[NNBYOL](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548)，并推出了关于如何实现新方法的新教程 [1](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Fadd_new_method.html) 和 [2](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Fadd_new_method_momentum.html)，进一步加强了测试，并修复了自定义数据和线性评估方面的问题。\n* **[2021年9月19日]**：:kangaroo: 新增了在线 k-NN 评估功能。\n* **[2021年9月17日]**：:robot: 新增了 [ViT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11929) 和 [Swin](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.14030)。\n* **[2021年9月13日]**：:book: 改进了 [文档](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)，并新增了关于 [预训练](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Foverview.html) 和 [离线线性评估](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Foffline_linear_eval.html) 的教程。\n* **[2021年8月13日]**：:whale: [DeepCluster V2](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.09882) 现已可用。\n\n---\n\n## 路线图及所需帮助\n* 重新整理文档以提升清晰度。\n* 提供更好、更及时的教程。\n* 增加性能相关的测试，确保方法在每次更新后都能保持一致的性能。\n* 持续添加新方法。\n\n---\n\n## 可用方法\n* [All4One](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FICCV2023\u002Fhtml\u002FEstepa_All4One_Symbiotic_Neighbour_Contrastive_Learning_via_Self-Attention_and_Redundancy_Reduction_ICCV_2023_paper.html)\n* [Barlow Twins](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.03230)\n* [BYOL](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.07733)\n* [DeepCluster V2](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.09882)\n* [DINO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14294)\n* [MAE](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.06377)\n* [MoCo V2+](https:\u002F\u002Farxiv.org\u002Fabs\u002F2003.04297)\n* [MoCo V3](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.02057)\n* [NNBYOL](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548)\n* [NNCLR](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548)\n* [NNSiam](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548)\n* [ReSSL](https:\u002F\u002Farxiv.org\u002Fabs\u002F2107.09282)\n* [SimCLR](https:\u002F\u002Farxiv.org\u002Fabs\u002F2002.05709)\n* [SimSiam](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.10566)\n* [有监督对比学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F2004.11362)\n* [SwAV](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.09882)\n* [VIbCReg](https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.00783)\n* [VICReg](https:\u002F\u002Farxiv.org\u002Fabs\u002F2105.04906)\n* [W-MSE](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.06346)\n\n---\n\n## 额外特色\n\n### 主干网络\n* [ResNet](https:\u002F\u002Farxiv.org\u002Fabs\u002F1512.03385)\n* [WideResNet](https:\u002F\u002Farxiv.org\u002Fabs\u002F1605.07146)\n* [ViT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11929)\n* [Swin](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.14030)\n* [PoolFormer](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.11418)\n* [ConvNeXt](https:\u002F\u002Farxiv.org\u002Fabs\u002F2201.03545)\n\n### 数据处理\n* 使用 [Nvidia Dali](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FDALI) 将数据处理速度提升高达 100%。\n* 灵活的数据增强技术。\n\n### 评估\n* 通过停止梯度进行在线线性评估，便于调试和原型开发（也可选择在动量骨干网络上使用）。\n* 标准的离线线性评估。\n* 在线和离线 K-NN 评估。\n* 使用 UMAP 自动可视化特征空间。\n\n### 训练技巧\n* PyTorch Lightning 的所有优势（混合精度、梯度累积、梯度裁剪等）。\n* 通道最后转换。\n* 按照 [SwAV](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.09882) 实现的多裁剪数据加载：\n    * **注意**：目前仅 SimCLR、BYOL 和 SwAV 支持此功能。\n* 将批归一化层和偏置项排除在权重衰减和 LARS 优化之外。\n* 投影头不使用学习率调度器（如 SimSiam 中的做法）。\n\n### 日志记录\n* 使用 [WandB](https:\u002F\u002Fwandb.ai\u002Fsite) 在云端记录指标。\n* 自定义模型检查点保存，并采用简洁的文件组织方式。\n\n---\n## 需求\n* torch\n* torchvision\n* tqdm\n* einops\n* wandb\n* pytorch-lightning\n* lightning-bolts\n* torchmetrics\n* scipy\n* timm\n\n**可选**：\n* nvidia-dali\n* matplotlib\n* seaborn\n* pandas\n* umap-learn\n\n---\n\n## 安装\n\n首先克隆仓库。\n\n然后，若需安装支持 [Dali](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FDALI) 和\u002F或 UMAP 的 solo-learn，可运行以下命令：\n```bash\npip3 install .[dali,umap,h5] --extra-index-url https:\u002F\u002Fdeveloper.download.nvidia.com\u002Fcompute\u002Fredist\n```\n\n若无需 Dali\u002FUMAP\u002FH5 支持，则直接安装仓库即可：\n```bash\npip3 install .\n```\n\n本地开发时：\n```bash\npip3 install -e .[umap,h5]\n# 确保已安装 pre-commit 钩子\npre-commit install\n```\n\n**注意**：若遇到 Dali 安装问题，请按照其官方 [指南](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FDALI) 进行安装。\n\n**注意 2**：建议安装 [Pillow-SIMD](https:\u002F\u002Fgithub.com\u002Fuploadcare\u002Fpillow-simd)，以便在不使用 Dali 时提升加载速度。\n\n**注意 3**：即将上线 PyPI。\n\n---\n\n## 训练\n\n预训练骨干网络时，可参考 `scripts\u002Fpretrain\u002F` 目录下的多个 Bash 脚本。我们目前使用 [Hydra](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fhydra) 处理配置文件，常见用法如下：\n```bash\npython3 main_pretrain.py \\\n    # 指定训练脚本所在目录\n    --config-path scripts\u002Fpretrain\u002Fimagenet-100\u002F \\\n    # 指定训练配置文件名\n    --config-name barlow.yaml\n    # 可通过 ++new_argument=VALUE 添加新参数（例如未在 YAML 文件中定义的参数）\n    # 也可在此处添加 PyTorch Lightning 的相关参数。\n```\n\n完成预训练后，可参照 `scripts\u002Flinear` 或 `scripts\u002Ffinetune` 中的示例进行离线线性评估或对整个骨干网络进行微调。\n\nK-NN 评估和 UMAP 可视化则可在 `scripts\u002F{knn,umap}` 目录下的脚本中找到。\n\n**注意**：这些脚本会尽量保持最新，并尽可能遵循各论文推荐的超参数，但请在运行前仔细核对。\n\n---\n\n## 教程\n\n请查看我们的 [文档](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest) 和教程：\n* [概述](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Foverview.html)\n* [离线线性评估](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Foffline_linear_eval.html)\n* [目标检测](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdownstream\u002Fobject_detection\u002FREADME.md)\n* [添加新方法](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Ftutorials\u002Fadd_new_method.rst)\n* [添加动量方法](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Ftutorials\u002Fadd_new_method_momentum.rst)\n* [使用 UMAP 可视化特征](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Ftutorials\u002Fumap.rst)\n* [离线 K-NN](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Ftutorials\u002Fknn.rst)\n\n若希望为 solo-learn 做贡献，请务必阅读 [如何贡献](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002F.github\u002FCONTRIBUTING.md) 并遵守 [行为准则](https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fblob\u002Fmain\u002F.github\u002FCODE_OF_CONDUCT.md)。\n\n---\n\n## 模型库\n\n所有预训练模型均可通过下方表格直接下载，或通过运行以下脚本以编程方式获取：\n`zoo\u002Fcifar10.sh`、`zoo\u002Fcifar100.sh`、`zoo\u002Fimagenet100.sh` 和 `zoo\u002Fimagenet.sh`。\n\n---\n\n## 结果\n\n**注意**：部分超参数可能并非最优，我们将在后续重新运行表现较差的方法。\n\n### CIFAR-10\n\n| 方法       | 主干网络 | Epochs | Dali | Acc@1 | Acc@5 | 检查点 |\n|--------------|:--------:|:------:|:----:|:--------------:|:--------------:|:----------:|\n| All4One      | ResNet18 |  1000  |  :x: |      93.24     |     99.88      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1dtYmZiftruQ7B2PQ8fo44wguCZ0eSzAd?usp=sharing) |\n| Barlow Twins | ResNet18 |  1000  |  :x: |      92.10     |     99.73      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1L5RAM3lCSViD2zEqLtC-GQKVw6mxtxJ_?usp=sharing) |\n| BYOL         | ResNet18 |  1000  |  :x: |      92.58     |     99.79      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1KxeYAEE7Ev9kdFFhXWkPZhG-ya3_UwGP?usp=sharing) |\n|DeepCluster V2| ResNet18 |  1000  |  :x: |      88.85     |     99.58      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1tkEbiDQ38vZaQUsT6_vEpxbDxSUAGwF-?usp=sharing) |\n| DINO         | ResNet18 |  1000  |  :x: |      89.52     |     99.71      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1vyqZKUyP8sQyEyf2cqonxlGMbQC-D1Gi?usp=sharing) |\n| MoCo V2+     | ResNet18 |  1000  |  :x: |      92.94     |     99.79      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1ruNFEB3F-Otxv2Y0p62wrjA4v5Fr2cKC?usp=sharing) |\n| MoCo V3      | ResNet18 |  1000  |  :x: |      93.10     |     99.80      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1KwZTshNEpmqnYJcmyYPvfIJ_DNwqtAVj?usp=sharing) |\n| NNCLR        | ResNet18 |  1000  |  :x: |      91.88     |     99.78      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1xdCzhvRehPmxinphuiZqFlfBwfwWDcLh?usp=sharing) |\n| ReSSL        | ResNet18 |  1000  |  :x: |      90.63     |     99.62      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1jrFcztY2eO_fG98xPshqOD15pDIhLXp-?usp=sharing) |\n| SimCLR       | ResNet18 |  1000  |  :x: |      90.74     |     99.75      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1mcvWr8P2WNJZ7TVpdLHA_Q91q4VK3y8O?usp=sharing) |\n| Simsiam      | ResNet18 |  1000  |  :x: |      90.51     |     99.72      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1OO_igM3IK5oDw7GjQTNmdfg2I1DH3xOk?usp=sharing) |\n| SupCon       | ResNet18 |  1000  |  :x: |      93.82     |     99.65      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1VwZ9TrJXCpnxyo7P_l397yGrGH-DAUv-?usp=sharing) |\n| SwAV         | ResNet18 |  1000  |  :x: |      89.17     |     99.68      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1nlJH4Ljm8-5fOIeAaKppQT6gtsmmW1T0?usp=sharing) |\n| VIbCReg      | ResNet18 |  1000  |  :x: |      91.18     |     99.74      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1XvxUOnLPZlC_-OkeuO7VqXT7z9_tNVk7?usp=sharing) |\n| VICReg       | ResNet18 |  1000  |  :x: |      92.07     |     99.74      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F159ZgCxocB7aaHxwNDubnAWU71zXV9hn-?usp=sharing) |\n| W-MSE        | ResNet18 |  1000  |  :x: |      88.67     |     99.68      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1xPCiULzQ4JCmhrTsbxBp9S2jRZ01KiVM?usp=sharing) |\n\n\n### CIFAR-100\n\n| 方法       | 主干网络 | Epochs | Dali | Acc@1 | Acc@5 | 检查点 |\n|--------------|:--------:|:------:|:----:|:--------------:|:--------------:|:----------:|\n| All4One      | ResNet18 |  1000  |  :x: |      72.17     |     93.35      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1oQcC80XPr-Wxhjs-PEqD_8VhUa_izqeZ?usp=sharing) |\n| Barlow Twins | ResNet18 |  1000  |  :x: |      70.90     |     91.91      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1hDLSApF3zSMAKco1Ck4DMjyNxhsIR2yq?usp=sharing) |\n| BYOL         | ResNet18 |  1000  |  :x: |      70.46     |     91.96      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1hwsEdsfsUulD2tAwa4epKK9pkSuvFv6m?usp=sharing) |\n|DeepCluster V2| ResNet18 |  1000  |  :x: |      63.61     |     88.09      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1gAKyMz41mvGh1BBOYdc_xu6JPSkKlWqK?usp=sharing) |\n| DINO         | ResNet18 |  1000  |  :x: |      66.76     |     90.34      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1TxeZi2YLprDDtbt_y5m29t4euroWr1Fy?usp=sharing) |\n| MoCo V2+     | ResNet18 |  1000  |  :x: |      69.89     |     91.65      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F15oWNM16vO6YVYmk_yOmw2XUrFivRXam4?usp=sharing) |\n| MoCo V3      | ResNet18 |  1000  |  :x: |      68.83     |     90.57      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Hcf9kMIADKydfxvXLquY9nv7sfNaJ3v6?usp=sharing) |\n| NNCLR        | ResNet18 |  1000  |  :x: |      69.62     |     91.52      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Dz72o0-5hugYPW1kCCQDBb0Xi3kzMLzu?usp=sharing) |\n| ReSSL        | ResNet18 |  1000  |  :x: |      65.92     |     89.73      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1aVZs9cHAu6Ccz8ILyWkp6NhTsJGBGfjr?usp=sharing) |\n| SimCLR       | ResNet18 |  1000  |  :x: |      65.78     |     89.04      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F13pGPcOO9Y3rBoeRVWARgbMFEp8OXxZa0?usp=sharing) |\n| Simsiam      | ResNet18 |  1000  |  :x: |      66.04     |     89.62      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1AJUPmsIHh_nqEcFe-Vcz2o4ruEibFHWO?usp=sharing) |\n| SupCon       | ResNet18 |  1000  |  :x: |      70.38     |     89.57      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F15C68oHPDMAOPtmBAm_Xw6YI6GgOW00gM?usp=sharing) |\n| SwAV         | ResNet18 |  1000  |  :x: |      64.88     |     88.78      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1U_bmyhlPEN941hbx0SdRGOT4ivCarQB9?usp=sharing) |\n| VIbCReg      | ResNet18 |  1000  |  :x: |      67.37     |     90.07      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F19u3p1maX3xqwoCHNrqSDb98J5fRvd_6v?usp=sharing) |\n| VICReg       | ResNet18 |  1000  |  :x: |      68.54     |     90.83      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1AHmVf_Zl5fikkmR4X3NWlmMOnRzfv0aT?usp=sharing) |\n| W-MSE        | ResNet18 |  1000  |  :x: |      61.33     |     87.26      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1vc9j3RLpVCbECh6o-44oMiE5snNyKPlF?usp=sharing) |\n\n### ImageNet-100\n\n| 方法                  | 主干网络 | 轮数 |        Dali        | 精确率@1（在线） | 精确率@1（离线） | 精确率@5（在线） | 精确率@5（离线） | 检查点 |\n|-------------------------|:--------:|:------:|:------------------:|:--------------:|:---------------:|:--------------:|:---------------:|:----------:|\n| All4One                 | ResNet18 |   400  | :heavy_check_mark: |      81.93     |     -       |      96.23     |      -      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1bJCRLP5Rz_JEylNq9C4sY3ccYZSchUGR?usp=sharing) |\n| Barlow Twins :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      80.38     |     80.16       |      95.28     |      95.14      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1rj8RbER9E71mBlCHIZEIhKPUFn437D5O?usp=sharing) |\n| BYOL         :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      80.16     |     80.32       |      95.02     |      94.94      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1riOLjMawD_znO4HYj8LBN2e1X4jXpDE1?usp=sharing) |\n| DeepCluster V2          | ResNet18 |   400  |         :x:        |      75.36     |     75.4        |      93.22     |      93.10      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1d5jPuavrQ7lMlQZn5m2KnN5sPMGhHFo8?usp=sharing) |\n| DINO                    | ResNet18 |   400  | :heavy_check_mark: |      74.84     |     74.92       |      92.92     |      92.78      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1NtVvRj-tQJvrMxRlMtCJSAecQnYZYkqs?usp=sharing) |\n| DINO         :sleepy:   | ViT Tiny |   400  |         :x:        |      63.04     |      TODO       |      87.72     |      TODO       | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F16AfsM-UpKky43kdSMlqj4XRe69pRdJLc?usp=sharing) |\n| MoCo V2+     :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      78.20     |     79.28       |      95.50     |      95.18      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1ItYBtMJ23Yh-Rhrvwjm4w1waFfUGSoKX?usp=sharing) |\n| MoCo V3      :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      80.36     |     80.36       |      95.18     |      94.96      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F15J0JiZsQAsrQler8mbbio-desb_nVoD1?usp=sharing) |\n| MoCo V3      :rocket:   | ResNet50 |   400  | :heavy_check_mark: |      85.48     |     84.58       |      96.82     |      96.70      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1a1VRXGlP50COZ57DPUA_doBmpaxGKpQE?usp=sharing) |\n| NNCLR        :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      79.80     |     80.16       |      95.28     |      95.30      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1QMkq8w3UsdcZmoNUIUPgfSCAZl_LSNjZ?usp=sharing) |\n| ReSSL                   | ResNet18 |   400  | :heavy_check_mark: |      76.92     |     78.48       |      94.20     |      94.24      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1urWIFACLont4GAduis6l0jcEbl080c9U?usp=sharing) |\n| SimCLR       :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      77.64     |     TODO        |      94.06     |      TODO       | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1yxAVKnc8Vf0tDfkixSB5mXe7dsA8Ll37?usp=sharing) |\n| Simsiam                 | ResNet18 |   400  | :heavy_check_mark: |      74.54     |     78.72       |      93.16     |      94.78      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Bc8Xj-Z7ILmspsiEQHyQsTOn4M99F_f5?usp=sharing) |\n| SupCon                  | ResNet18 |   400  | :heavy_check_mark: |      84.40     |     TODO        |      95.72     |      TODO       | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1BzR0nehkCKpnLhi-oeDynzzUcCYOCUJi?usp=sharing) |\n| SwAV                    | ResNet18 |   400  | :heavy_check_mark: |      74.04     |     74.28       |      92.70     |      92.84      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1VWCMM69sokzjVoPzPSLIsUy5S2Rrm1xJ?usp=sharing) |\n| VIbCReg                 | ResNet18 |   400  | :heavy_check_mark: |      79.86     |     79.38       |      94.98     |      94.60      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Q06hH18usvRwj2P0bsmoCkjNUX_0syCK?usp=sharing) |\n| VICReg       :rocket:   | ResNet18 |   400  | :heavy_check_mark: |      79.22     |     79.40       |      95.06     |      95.02      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1uWWR5VBUru8vaHaGeLicS6X3R4CfZsr2?usp=sharing) |\n| W-MSE                   | ResNet18 |   400  | :heavy_check_mark: |      67.60     |     69.06       |      90.94     |      91.22      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1TxubagNV4z5Qs7SqbBcyRHWGKevtFO5l?usp=sharing) |\n\n:rocket: 表示超参数经过大量调优的方法。\n\n:sleepy: ViT 非常消耗计算资源且不稳定，因此我们正在逐步尝试更大规模的架构和更大的批量大小。目前总批量大小为 128，且需要使用 float32 精度。如果您想参与运行，请联系我们！\n\n### ImageNet\n\n| 方法       | 主干网络 | 轮数 |        Dali        | 精确率@1（在线） | 精确率@1（离线） | 精确率@5（在线） | 精确率@5（离线） | 检查点 | 微调后的检查点 |\n|--------------|:--------:|:------:|:------------------:|:--------------:|:---------------:|:--------------:|:---------------:|:----------:|:----------:|\n| Barlow Twins | ResNet50 |   100  | :heavy_check_mark: |      67.18     |      67.23      |      87.69     |      87.98      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1IQUIrCOSduAjUJ31WJ1G5tHDZzWUIEft?usp=sharing) | |\n| BYOL         | ResNet50 |   100  | :heavy_check_mark: |      68.63     |      68.37      |      88.80     |      88.66      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1-UXo-MttdrqiEQXfV4Duc93fA3mIdsha?usp=sharing) | |\n| MoCo V2+     | ResNet50 |   100  | :heavy_check_mark: |      62.61     |      66.84      |      85.40     |      87.60      | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1NiBDmieEpNqkwrgn_H7bMnEDVAYc8Sk7?usp=sharing) | |\n| MAE          | ViT-B\u002F16 |   100  |        :x:         |      ~     |   81.60（微调后）   |      ~     |   95.50（微调后）   | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1OuaXCnQ7WeqyKPxfJibAkXoVTx7S8Hbb) | [:link:](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1c9DGhmLsTTtOu2vc9rodqm89wKtp40C5)?\n\n## DALI 的训练效率\n\n我们在一台配备 Intel i9-9820X 处理器和两块 RTX 2080 Ti 显卡的服务器上，使用带有和不带 DALI 的 ResNet18 模型（每张 GPU 配置 4 个工作进程），报告了部分方法的训练效率。\n\n| 方法       |  Dali            |  20 个 epoch 的总耗时  |   每个 epoch 的耗时   |  GPU 显存（每张 GPU） |\n|--------------|:----------------:|:--------------------------:|:--------------------:|:---------------------:|\n| Barlow Twins | :x:              | 1 小时 38 分 27 秒         |  4 分 55 秒          |      5097 MB          |\n|              |:heavy_check_mark:| 43 分 2 秒                 |  2 分 10 秒（快 56%） |      9292 MB          |\n| BYOL         | :x:              | 1 小时 38 分 46 秒         |  4 分 56 秒          |      5409 MB          |\n|              |:heavy_check_mark:| 50 分 33 秒                |  2 分 31 秒（快 49%） |      9521 MB          |\n| NNCLR        | :x:              | 1 小时 38 分 30 秒         |  4 分 55 秒          |      5060 MB          |\n|              |:heavy_check_mark:| 42 分 3 秒                 |  2 分 6 秒（快 64%）  |      9244 MB          |\n\n**注**：GPU 显存占用的增加并不与模型大小成正比，而是与工作进程的数量相关。\n\n---\n\n## 引用\n如果您使用 solo-learn，请引用我们的论文：\n```bibtex\n@article{JMLR:v23:21-1155,\n  author  = {Victor Guilherme Turrisi da Costa 和 Enrico Fini 和 Moin Nabi 和 Nicu Sebe 和 Elisa Ricci},\n  title   = {solo-learn：用于视觉表征学习的自监督方法库},\n  journal = {机器学习研究期刊},\n  year    = {2022},\n  volume  = {23},\n  number  = {56},\n  pages   = {1-6},\n  url     = {http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv23\u002F21-1155.html}\n}\n```","# solo-learn 快速上手指南\n\nsolo-learn 是一个基于 PyTorch Lightning 的自监督视觉表示学习库，集成了多种 SOTA（最先进）算法（如 SimCLR, BYOL, DINO, MAE 等），旨在提供可复现的训练环境和灵活的配置系统。\n\n## 环境准备\n\n### 系统要求\n*   **操作系统**: Linux (推荐), macOS, Windows\n*   **Python**: 3.8+\n*   **GPU**: 支持 CUDA 的 NVIDIA GPU（可选，但强烈推荐用于训练）\n\n### 前置依赖\n核心依赖包括：\n*   `torch` & `torchvision`\n*   `pytorch-lightning`\n*   `hydra-core` (用于配置管理)\n*   `wandb` (可选，用于日志记录)\n\n**可选增强依赖**（用于加速数据加载或可视化）：\n*   `nvidia-dali`: 大幅提升数据预处理速度\n*   `umap-learn`, `matplotlib`, `seaborn`: 用于特征空间可视化\n\n> **国内开发者提示**：建议配置 pip 国内镜像源（如清华源、阿里源）以加速依赖下载。\n> ```bash\n> pip config set global.index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 安装步骤\n\n### 1. 克隆仓库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn.git\ncd solo-learn\n```\n\n### 2. 安装依赖\n\n**方案 A：完整安装（推荐）**\n包含 Dali (数据加速)、UMAP (可视化) 和 H5 支持。\n*注意：安装 Dali 需要添加 NVIDIA 的额外索引源。*\n\n```bash\npip3 install .[dali,umap,h5] --extra-index-url https:\u002F\u002Fdeveloper.download.nvidia.com\u002Fcompute\u002Fredist\n```\n\n**方案 B：最小化安装**\n仅安装核心功能，不包含 Dali 和 UMAP。\n\n```bash\npip3 install .\n```\n\n**方案 C：开发模式安装**\n如果您计划修改源码或贡献代码。\n\n```bash\npip3 install -e .[umap,h5]\npre-commit install\n```\n\n> **性能优化提示**：如果不使用 Dali，建议安装 `Pillow-SIMD` 以提升图像加载速度：\n> ```bash\n> pip uninstall pillow\n> CC=\"cc -mavx2\" pip install -U --force-reinstall pillow-simd\n> ```\n\n## 基本使用\n\nsolo-learn 使用 **Hydra** 进行配置管理，通过命令行参数覆盖 YAML 配置文件中的设置。\n\n### 1. 预训练骨干网络 (Pretraining)\n\n进入项目根目录，使用 `main_pretrain.py` 启动训练。以下示例展示如何使用配置文件启动 **Barlow Twins** 算法在 ImageNet-100 数据集上的训练：\n\n```bash\npython3 main_pretrain.py \\\n    --config-path scripts\u002Fpretrain\u002Fimagenet-100\u002F \\\n    --config-name barlow.yaml \\\n    ++data.data_path=\u002Fpath\u002Fto\u002Fyour\u002Fdataset \\\n    ++trainer.gpus=1 \\\n    ++trainer.max_epochs=100\n```\n\n**参数说明：**\n*   `--config-path`: 配置文件所在文件夹路径（位于 `scripts\u002Fpretrain\u002F` 下）。\n*   `--config-name`: 具体的算法配置文件名（如 `barlow.yaml`, `simclr.yaml`, `dino.yaml` 等）。\n*   `++key=value`: 动态覆盖配置项。例如指定数据路径、GPU 数量或 epoch 数。也可以直接传递 PyTorch Lightning 的参数。\n\n常用算法配置文件位于 `scripts\u002Fpretrain\u002F` 目录下，支持 CIFAR-10, CIFAR-100, ImageNet-100 及完整 ImageNet。\n\n### 2. 线性评估 (Linear Evaluation)\n\n预训练完成后，使用冻结的骨干网络进行线性分类器评估：\n\n```bash\npython3 main_linear.py \\\n    --config-path scripts\u002Flinear\u002Fimagenet-100\u002F \\\n    --config-name barlow.yaml \\\n    ++model.checkpoint_path=\u002Fpath\u002Fto\u002Fpretrained_checkpoint.ckpt \\\n    ++data.data_path=\u002Fpath\u002Fto\u002Fyour\u002Fdataset\n```\n\n### 3. 微调 (Finetuning)\n\n如果需要微调整个骨干网络（例如使用 MAE 或其他需要微调的方法）：\n\n```bash\npython3 main_linear.py \\\n    --config-path scripts\u002Ffinetune\u002Fimagenet-100\u002F \\\n    --config-name mae.yaml \\\n    ++model.checkpoint_path=\u002Fpath\u002Fto\u002Fpretrained_checkpoint.ckpt\n```\n\n### 4. 其他工具\n\n*   **K-NN 评估**: 运行 `scripts\u002Fknn` 下的脚本。\n*   **特征可视化 (UMAP)**: 运行 `scripts\u002Fumap` 下的脚本。\n*   **目标检测下游任务**: 参考 `downstream\u002Fobject_detection\u002F` 目录。\n\n更多详细教程和 API 文档请访问 [官方文档](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest)。","某医疗影像初创公司的算法团队需要在缺乏专家标注的情况下，从数万张未标记的肺部 CT 扫描图中提取高质量特征，以辅助早期病灶检测。\n\n### 没有 solo-learn 时\n- **复现成本极高**：团队需手动从零编写 SimCLR、MoCo 或 BYOL 等自监督算法代码，不仅耗时数周，还极易因细节错误导致模型无法收敛。\n- **实验对比困难**：由于缺乏统一的训练框架和标准化配置，不同算法间的性能对比受超参数和环境差异影响，难以公平评估哪种方法最适合医疗数据。\n- **资源利用率低**：缺少对混合精度训练、Channel Last 优化及多节点分布式训练的内置支持，导致昂贵的 GPU 集群训练速度缓慢，迭代周期长。\n- **工程维护繁琐**：断点续训、数据增强流水线调整等功能需自行开发，一旦实验中途崩溃，往往需要从头开始，严重拖慢研发进度。\n\n### 使用 solo-learn 后\n- **快速部署 SOTA 模型**：直接调用 solo-learn 内置的 MoCo V3、MAE 等前沿算法，仅需修改配置文件即可在几天内完成基线模型搭建与验证。\n- **公平且高效的评估**：依托 PyTorch Lightning 的统一环境，团队能在完全一致的条件下对比多种自监督方法，迅速锁定最适合 CT 影像特征的预训练模型。\n- **训练加速显著**：利用 solo-learn 集成的 LARS 优化器、自动混合精度及 DALI 数据加载模块，将大规模无标签数据的训练时间缩短了 40% 以上。\n- **稳健的实验管理**：借助自动恢复（Auto-resume）功能和灵活的 Hydra 配置系统，即使遇到硬件故障也能无缝接续训练，大幅提升了研发效率。\n\nsolo-learn 通过提供标准化、高性能的自监督学习工具箱，让团队得以在无标注数据上低成本地挖掘高价值视觉特征，显著降低了医疗 AI 的落地门槛。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvturrisi_solo-learn_0f0c7cac.png","vturrisi","Victor Turrisi","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fvturrisi_5f175838.jpg","🍎 ",null,"vt.turrisi@gmail.com","https:\u002F\u002Fgithub.com\u002Fvturrisi",[80,84],{"name":81,"color":82,"percentage":83},"Python","#3572A5",97,{"name":85,"color":86,"percentage":10},"Shell","#89e051",1554,200,"2026-04-03T21:20:29","MIT","未说明","需要 NVIDIA GPU (若使用 Nvidia DALI 加速)，显存大小取决于模型和数据集 (如 ImageNet 训练通常需大显存)，CUDA 版本需与安装的 PyTorch 版本兼容","未说明 (建议 16GB+ 以处理大型数据集)",{"notes":95,"python":96,"dependencies":97},"可选安装 nvidia-dali 以提升数据处理速度（需额外配置 NVIDIA 源）；支持 H5 数据格式和 UMAP 可视化需安装额外依赖；建议使用 Pillow-SIMD 替代 Pillow 以提升非 DALI 模式下的图像加载速度；配置管理使用 Hydra\u002FOmegaConf。","3.8+",[98,99,100,101,102,103,104,105,106,107],"torch","torchvision","pytorch-lightning","lightning-bolts","torchmetrics","timm","einops","scipy","tqdm","wandb",[14,35],[110,111,112,113,100,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128],"simclr","nvidia-dali","contrastive-learning","pytorch","barlow-twins","self-supervised-learning","swav","byol","moco","simsiam","vicreg","nnclr","dino","deepcluster","ressl","vibcreg","transformer-models","mae","masked-input-prediction","2026-03-27T02:49:30.150509","2026-04-07T13:29:04.013169",[132,137,142,147,152,157],{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},22093,"如何在单节点多 GPU 环境下正确运行预训练脚本？","在使用多 GPU（例如 --devices 0,1,2,3）时，需要指定策略为 'ddp' 并启用同步批归一化（sync_batchnorm）。以下是一个完整的命令示例：\npython main_pretrain.py --dataset cifar10 --backbone resnet18 --data_dir .\u002Fdatasets --max_epochs 1000 --devices 0,1,2,3 --accelerator gpu --precision 16 --optimizer lars --grad_clip_lars --eta_lars 0.02 --exclude_bias_n_norm --scheduler warmup_cosine --lr 0.4 --classifier_lr 0.1 --weight_decay 1e-5 --batch_size 64 --num_workers 4 --crop_size 32 --brightness 0.8 --contrast 0.8 --saturation 0.8 --hue 0.2 --gaussian_prob 0.0 0.0 --num_crops_per_aug 1 1 --name simclr-cifar10-ddp4-lr4-6 --project solo --entity \u003Cyour_entity> --wandb --save_checkpoint --auto_resume --method simclr --temperature 0.2 --proj_hidden_dim 2048 --proj_output_dim 256 --strategy ddp --sync_batchnorm","https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fissues\u002F253",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},22094,"复现 ImageNet-100 结果时准确率远低于官方报告值，如何解决？","该问题通常是由 PyTorch Lightning 版本不兼容导致的。用户反馈手动将 pytorch-lightning 升级到 2.0.2 版本后，学习率和验证准确率均恢复正常。建议检查并更新 requirements 文件中的 pytorch-lightning 版本至最新兼容版本。","https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fissues\u002F346",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},22095,"MAE 方法在 ImageNet 上的复现性能与论文结果不符怎么办？","如果配置完全一致但性能仍有较大差距（如 Top-1 准确率低约 4%），可能是特定版本的实现差异或随机种子影响。维护者已确认该问题，并将经过调试的正确检查点（checkpoints）和结果添加到了模型的 Zoo 中（参考 Issue #321）。建议直接使用官方提供的预训练权重或参考更新后的配置进行复现。","https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fissues\u002F313",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},22096,"调用类方法时出现 \"missing 1 required positional argument\" 错误如何解决？","这是因为直接在类外部调用实例方法时缺少了 `self` 参数。解决方法有两种：\n1. 如果希望作为类方法直接调用，需要在方法定义前添加 `@classmethod` 装饰器，并移除方法内部对 `self.something` 的依赖。\n2. 或者确保通过类的实例对象来调用该方法，而不是直接通过类名调用。","https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fissues\u002F57",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},22097,"如何使用自定义数据集（如多光谱图像 .tif 文件）或非标准骨干网络？","框架默认主要针对 RGB 图像（.png\u002F.jpg）和标准骨干网设计，不直接支持多光谱图像或自定义输入通道数。若要支持：\n1. 需要修改数据加载部分，移除或替换默认的 `RandomResizedCrop` 等变换，因为双三次插值（bicubic interpolation）可能不适用于非 RGB 数据且耗时。\n2. 对于骨干网络，需修改第一层卷积层的 `in_channels` 参数以匹配输入通道数（默认为 3）。\n3. 可以尝试使用 Kornia 或 NVIDIA DALI 自定义数据处理流程，但可能需要自行编写适配代码。","https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fissues\u002F129",{"id":158,"question_zh":159,"answer_zh":160,"source_url":151},22098,"代码库中的 `batch[-1]` 代表什么含义？","在 solo-learn 的数据加载约定中，`batch` 通常是一个列表或元组，其中包含输入图像张量和对应的标签。`batch[-1]` 通常指代 batch 中的最后一个元素，即目标标签（targets\u002Flabels）。具体的数据结构取决于所使用的 DataLoader 实现，但通常格式为 `[images, targets]` 或类似结构。",[162,167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247],{"id":163,"version":164,"summary_zh":165,"released_at":166},135779,"1.0.8","使用较新库的稳定版本。","2023-12-07T11:16:34",{"id":168,"version":169,"summary_zh":170,"released_at":171},135780,"1.0.7","## 变更内容\n* 由 @ojss 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F311 中为 Resize 操作添加了 `dali_device` 选项\n* CI：precommit 由 @Borda 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F316 中实现\n* 修复 Sphinx 构建问题，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F312 中完成\n* 添加 logo 并更新版权许可，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F317 中完成\n* 统一依赖项要求，由 @Borda 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F318 中实现\n* 功能（CI）：在 CI 中更新 pip 缓存，由 @SauravMaheshkar 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F319 中完成\n* [pre-commit.ci] 自动更新 pre-commit 配置，由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F320 中完成\n* 添加 MAE 的检查点和结果，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F321 中完成\n* [pre-commit.ci] 自动更新 pre-commit 配置，由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F323 中完成\n* [pre-commit.ci] 自动更新 pre-commit 配置，由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F325 中完成\n* 支持 CustomDatasetWithoutLabels 中 0\u003Cdata_fraction\u003C1 的情况，由 @kaland313 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F328 中实现\n* 更新至 PyTorch Lightning 2.0.2，移除 lightning-bolts 依赖及其他修复，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F344 中完成\n* 为 BibTeX 条目添加代码高亮，由 @bryant1410 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F342 中完成\n* 使用 Python 3.8 更新的语法，由 @bryant1410 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F343 中完成\n* 修复 Python 3.10 上的测试，由 @bryant1410 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F347 中完成\n* 暂时回滚 PL 版本，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F350 中完成\n* DALI 的临时修复及 PyTorch Lightning 版本升级，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F351 中完成\n\n## 新贡献者\n* @ojss 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F311 中完成了首次贡献\n* @Borda 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F316 中完成了首次贡献\n* @SauravMaheshkar 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F319 中完成了首次贡献\n* @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F320 中完成了首次贡献\n* @kaland313 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F328 中完成了首次贡献\n* @bryant1410 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F342 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fcompare\u002F1.0.6...1.0.7","2023-06-01T16:03:44",{"id":173,"version":174,"summary_zh":175,"released_at":176},135781,"1.0.6","## 变更内容\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F273 中改进了主干网络\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F274 中更新了 main_linear.py 文件\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F275 中增加了对 H5 数据的支持，并改进了脚本和数据处理流程\n* @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F280 中修复了当调度间隔不是以步数为单位时的步数问题\n* @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F281 中修复了 zoo 脚本\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F282 中修复了 main_linear.py\n* @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F285 中修复了 simsiam 的注释问题\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F287 中修复了训练步数的问题\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F278 中实现了 MAE 方法\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F289 中移除了权重衰减中的偏置和归一化项\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F291 中将偏置和归一化项排除在权重衰减之外\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F294 中将温度参数传递给 mocov3 损失函数\n* @turian 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F299 中添加了 Sphinx 相关操作\n* @turian 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F304 中添加了 precommit 钩子\n* @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F300 中将配置解析从 Argparse 迁移到 Omegaconf\n\n## 新贡献者\n* @turian 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F299 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fcompare\u002F1.0.5...1.0.6","2022-10-18T10:43:50",{"id":178,"version":179,"summary_zh":180,"released_at":181},135782,"1.0.5","## 变更内容\n* 由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F260 中修复了 README 中的多裁剪问题\n* 由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F263 中添加了引用文献链接\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F268 中新增了 Mocov3 模型\n* 由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F261 中修复了有效批次大小和梯度清零的问题\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F269 中修复了在 PyTorch Lightning 1.6 及以上版本中获取设备数量的方法\n* 由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F270 中更新了 issue 模板\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fcompare\u002F1.0.4...1.0.5","2022-06-30T12:57:58",{"id":183,"version":184,"summary_zh":185,"released_at":186},135783,"1.0.4","## 变更内容\n* 修复 CONTRIBUTING.md 链接，由 @PeppeSaccardi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F202 中完成\n* 修复\u002F中等级别改进，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F203 中完成\n* 改进的 SimCLR + SupCon 实现，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F204 中完成\n* mocov2plus ImageNet 实现，由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F208 中完成\n* 表格优化，由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F209 中完成\n* Barlow Networks ImageNet 在线训练实现，由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F210 中完成\n* Barlow Networks 的实验结果，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F212 中完成\n* 小规模兼容性修复，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F220 中完成\n* 添加 ConvNeXt 模型，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F223 中完成\n* 为线性分类器添加预热参数，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F227 中完成\n* 每个 epoch 更新学习率调度器，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F228 中完成\n* 修复一些收集相关的问题，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F232 中完成\n* 添加 MosaicML 的 ChannelLast 优化，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F235 中完成\n* ChannelLast 优化，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F236 中完成\n* 对方法设计进行了一些清理，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F238 中完成\n* 提供一种使用数据子集百分比进行训练的方式，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F239 中完成\n* 为 SimCLR 添加 gather 操作，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F240 中完成\n* 添加检查以判断是否使用 DDP，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F241 中完成\n* 为线性分类器添加数据占比配置，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F242 中完成\n* 将 DALI 转换为 DataModule，并对其进行改进和清理，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F244 中完成\n* 修复动量 tau 参数，由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F247 中完成\n* 更新 requirements.txt 文件，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F250 中完成\n* 修复 SwAV 中的原型归一化问题，由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F249 中完成\n* 修复 Barlow Networks 脚本中的问题，由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F254 中完成\n* 修复 MoCo 脚本中的问题，由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F255 中完成\n* 大量改动，由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F251 中完成\n* 修复 README 中的主干网络说明，由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F256 中完成\n* 添加 Horovod 支持以实现多节点训练，并改进 LARS 优化器，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F257 中完成\n* 修复 SimCLR 中与 DDP 相关的问题，由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F259 中完成\n\n## 新贡献者\n* @PeppeSaccardi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F202 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fcompare\u002F1.0.3...1.0.4","2022-06-14T23:49:13",{"id":188,"version":189,"summary_zh":190,"released_at":191},135784,"1.0.3","## 变更内容\n* 由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F149 中修复了 NNBYOL 和 NNSiam 的一些小问题。\n* 由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F157 中重构了数据增强部分。\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F158 中修复了 Bash 脚本相关问题。\n* 由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F159 中修复了 KNN 的内存问题。\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F164 中修复了数据增强相关问题。\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F169 中添加了自动恢复功能。\n* 由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F171 中修复了在线 KNN 相关问题。\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F172 中修复了文档相关问题。\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F170 中新增了 Detectron 支持。\n* 由 @Froskekongen 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F182 中实现了 Vibcreg。\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F194 中对 JMLR 相关内容进行了改进。\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F199 中对 UMAP 相关内容进行了改进。\n* 由 @DonkeyShot21 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F200 中修复了 STL10 数据集上在线 KNN 的问题。\n* 由 @vturrisi 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F201 中实现了多层级特征的访问功能。\n\n## 新贡献者\n* @Froskekongen 在 https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fpull\u002F182 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fvturrisi\u002Fsolo-learn\u002Fcompare\u002F1.0.2...1.0.3","2021-12-01T15:10:51",{"id":193,"version":194,"summary_zh":195,"released_at":196},135785,"1.0.2",":pizza: 新增了 [NNSiam](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548) 和 [NNBYOL](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14548)，以及用于实现新方法的两个新教程[1](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Fadd_new_method.html) 和 [2](https:\u002F\u002Fsolo-learn.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials\u002Fadd_new_method_momentum.html)，同时还进行了更多测试，并修复了自定义数据集和线性评估相关的问题。","2021-09-29T20:20:24",{"id":198,"version":199,"summary_zh":200,"released_at":201},135786,"1.0.1",":kangaroo: 增加了在线k-NN评估。\n:robot: 重构了[ViT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11929)，并新增了[Swin](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.14030)。","2021-09-21T13:40:32",{"id":203,"version":204,"summary_zh":205,"released_at":206},135787,"1.0",":robot: 添加了 ViT。\n:pen: 进行了一些重命名，以提高清晰度。\n:book: 添加了初步教程并改进了文档。\n:boar: 增加了额外的工具函数。","2021-09-17T19:35:41",{"id":208,"version":209,"summary_zh":210,"released_at":211},135788,"0.9","- 增加对 Deepcluster V2 的支持\n- 为 DALI 采用了不同的打乱策略，现在在需要时可以返回正确的图像索引\n- 命名一致性改进","2021-08-13T20:14:56",{"id":213,"version":214,"summary_zh":215,"released_at":216},135789,"0.8","Added support for custom data.","2021-07-28T19:00:46",{"id":218,"version":219,"summary_zh":220,"released_at":221},135790,"0.7","- Improved dataloading pipeline, allowing more flexibility for augmentation parameters.\r\n- AutoUMAP is now available.","2021-07-26T17:46:33",{"id":223,"version":224,"summary_zh":225,"released_at":226},135791,"0.6","Changed structure, added documentation and finilized results","2021-07-14T12:54:57",{"id":228,"version":229,"summary_zh":230,"released_at":231},135792,"0.5","Added WMSE and some cleaning.","2021-07-05T22:11:56",{"id":233,"version":234,"summary_zh":235,"released_at":236},135793,"0.4","Added DINO, minor fixes on SWaV and better consistency.","2021-06-30T03:42:55",{"id":238,"version":239,"summary_zh":240,"released_at":241},135794,"0.3","Stable structure and better integrated with PL.","2021-06-24T17:26:29",{"id":243,"version":244,"summary_zh":245,"released_at":246},135795,"0.2","Better structure for all models and much cleaner code.","2021-06-02T14:05:42",{"id":248,"version":249,"summary_zh":250,"released_at":251},135796,"0.1","Most existing methods and common training tricks are currently available.","2021-05-20T17:28:36"]