[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-KaiyangZhou--CoOp":3,"tool-KaiyangZhou--CoOp":65},[4,23,32,40,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,2,"2026-04-05T10:45:23",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[17,13,20,19,18],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74913,"2026-04-05T10:44:17",[19,13,20,18],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,1,"2026-04-03T21:50:24",[20,18],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":46,"last_commit_at":55,"category_tags":56,"status":22},2234,"scikit-learn","scikit-learn\u002Fscikit-learn","scikit-learn 是一个基于 Python 构建的开源机器学习库，依托于 SciPy、NumPy 等科学计算生态，旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口，涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具，内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。\n\n对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言，scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点，让用户无需重复造轮子，只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。\n\n其核心技术亮点在于高度一致的 API 设计风格，所有估算器（Estimator）均遵循相同的调用逻辑，极大地降低了学习成本并提升了代码的可读性与可维护性。此外，它还提供了强大的模型选择与评估工具，如交叉验证和网格搜索，帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目，scikit-learn 以其稳定性、详尽的文档和活跃的社区支持，成为连接理论学习与工业级应用的最",65628,"2026-04-05T10:10:46",[20,18,14],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":10,"last_commit_at":63,"category_tags":64,"status":22},3364,"keras","keras-team\u002Fkeras","Keras 是一个专为人类设计的深度学习框架，旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。\n\n无论是刚入门的学生、专注算法的研究人员，还是需要快速落地产品的工程师，都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。\n\nKeras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码，即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性，还允许开发者根据需求自由选择：利用 JAX 或 PyTorch 的即时执行模式进行高效调试，或切换至速度最快的后端以获得最高 350% 的性能提升。此外，Keras 具备强大的扩展能力，能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群，是连接原型开发与生产部署的理想桥梁。",63927,"2026-04-04T15:24:37",[20,14,18],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":29,"env_os":96,"env_gpu":96,"env_ram":96,"env_deps":97,"category_tags":103,"github_topics":104,"view_count":108,"oss_zip_url":79,"oss_zip_packed_at":79,"status":22,"created_at":109,"updated_at":110,"faqs":111,"releases":142},664,"KaiyangZhou\u002FCoOp","CoOp","Prompt Learning for Vision-Language Models (IJCV'22, CVPR'22)","CoOp 是一个面向视觉语言模型的提示学习开源框架。它旨在让像 CLIP 这样的大规模预训练模型更灵活地适应下游任务。传统微调方法通常需要海量数据和昂贵算力，CoOp 则通过优化可学习的文本提示向量，实现了仅需少量参数调整就能达到良好效果的目标。这使得 CoOp 成为解决少样本学习和应对数据分布变化问题的有力方案。\n\nCoOp 非常适合计算机视觉领域的研究人员、算法工程师以及对高效迁移学习感兴趣的开发者。CoOp 的独特之处在于摒弃了固定的人工设计提示词，转而让模型自动学习最合适的语义表达，从而大幅提升在图像分类等任务上的泛化能力。无论是处理常见数据集还是面对复杂的数据分布变化，CoOp 都能提供稳定的性能支持。基于 Dassl 工具箱构建的代码库也便于用户快速上手实验与复现，是探索大模型适配技术的理想选择。","# Prompt Learning for Vision-Language Models\n\nThis repo contains the codebase of a series of research projects focused on adapting vision-language models like [CLIP](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.00020) to downstream datasets via *prompt learning*:\n\n* [Conditional Prompt Learning for Vision-Language Models](https:\u002F\u002Farxiv.org\u002Fabs\u002F2203.05557), in CVPR, 2022.\n* [Learning to Prompt for Vision-Language Models](https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01134), IJCV, 2022.\n\n## Updates\n\n- **07.10.2022**: Just added to both [CoOp](https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01134) and [CoCoOp](https:\u002F\u002Farxiv.org\u002Fabs\u002F2203.05557) (in their appendices) the results on the newly proposed DOSCO (DOmain Shift in COntext) benchmark, which focuses on contextual domain shift and covers a diverse set of classification problems. (The paper about DOSCO is [here](https:\u002F\u002Farxiv.org\u002Fabs\u002F2209.07521) and the code for running CoOp\u002FCoCoOp on DOSCO is [here](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002Fon-device-dg).)\n\n- **17.09.2022**: [Call for Papers](https:\u002F\u002Fkaiyangzhou.github.io\u002Fassets\u002Fcfp_ijcv_lvms.html): IJCV Special Issue on *The Promises and Dangers of Large Vision Models*.\n\n- **16.07.2022**: CoOp has been accepted to IJCV for publication!\n\n- **10.06.2022**: Our latest work, [Neural Prompt Search](https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.04673), has just been released on arxiv. It provides a novel perspective for fine-tuning large vision models like [ViT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11929), so please check it out if you're interested in parameter-efficient fine-tuning\u002Ftransfer learning. The code is also made public [here](https:\u002F\u002Fgithub.com\u002FDavidzhangyuanhan\u002FNOAH).\n\n- **08.06.2022**: If you're looking for the code to draw the few-shot performance curves (like the ones we show in the CoOp's paper), see `draw_curves.py`.\n\n- **09.04.2022**: The pre-trained weights of CoOp on ImageNet are released [here](#pre-trained-models).\n\n- **11.03.2022**: The code of our CVPR'22 paper, \"[Conditional Prompt Learning for Vision-Language Models](https:\u002F\u002Farxiv.org\u002Fabs\u002F2203.05557),\" is released.\n\n- **15.10.2021**: We find that the `best_val` model and the `last_step` model achieve similar performance, so we set `TEST.FINAL_MODEL = \"last_step\"` for all datasets to save training time. Why we used `best_val`: the ([tiny](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fblob\u002Fmain\u002Fdatasets\u002Foxford_pets.py#L32)) validation set was designed for the linear probe approach, which requires extensive tuning for its hyperparameters, so we used the `best_val` model for CoOp as well for fair comparison (in this way, both approaches have access to the validation set).\n\n- **09.10.2021**: Important changes are made to Dassl's transforms.py. Please pull the latest commits from https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FDassl.pytorch and this repo to make sure the code works properly. In particular, 1) `center_crop` now becomes a default transform in testing (applied after resizing the smaller edge to a certain size to keep the image aspect ratio), and 2) for training, `Resize(cfg.INPUT.SIZE)` is deactivated when `random_crop` or `random_resized_crop` is used. Please read this [issue](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fissues\u002F8) on how these changes might affect the performance.\n\n- **18.09.2021**: We have fixed an error in Dassl which could cause a training data loader to have zero length (so no training will be performed) when the dataset size is smaller than the batch size (due to `drop_last=True`). Please pull the latest commit for Dassl (>= `8eecc3c`). This error led to lower results for CoOp in EuroSAT's 1- and 2-shot settings (others are all correct). We will update the paper on arxiv to fix this error.\n\n## How to Install\nThis code is built on top of the awesome toolbox [Dassl.pytorch](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FDassl.pytorch) so you need to install the `dassl` environment first. Simply follow the instructions described [here](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FDassl.pytorch#installation) to install `dassl` as well as PyTorch. After that, run `pip install -r requirements.txt` under `CoOp\u002F` to install a few more packages required by [CLIP](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP) (this should be done when `dassl` is activated). Then, you are ready to go.\n\nFollow [DATASETS.md](DATASETS.md) to install the datasets.\n\n## How to Run\n\nClick a paper below to see the detailed instructions on how to run the code to reproduce the results.\n\n* [Learning to Prompt for Vision-Language Models](COOP.md)\n* [Conditional Prompt Learning for Vision-Language Models](COCOOP.md)\n\n## Models and Results\n\n- The pre-trained weights of CoOp (both M=16 & M=4) on ImageNet based on RN50, RN101, ViT-B\u002F16 and ViT-B\u002F32 can be downloaded altogether via this [link](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F18ypxfd82RR0pizc5MM1ZWDYDk4j0BtPF\u002Fview?usp=sharing). The weights can be used to reproduce the results in Table 1 of CoOp's paper (i.e., the results on ImageNet and its four variants with domain shift). To load the weights and run the evaluation code, you will need to specify `--model-dir` and `--load-epoch` (see this [script](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fblob\u002Fmain\u002Fscripts\u002Feval.sh) for example).\n- The raw numerical results can be found at this [google drive link](https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F12_kaFdD0nct9aUIrDoreY0qDunQ9q9tv\u002Fedit?usp=sharing&ouid=100312610418109826457&rtpof=true&sd=true).\n\n## Citation\nIf you use this code in your research, please kindly cite the following papers\n\n```bash\n@inproceedings{zhou2022cocoop,\n    title={Conditional Prompt Learning for Vision-Language Models},\n    author={Zhou, Kaiyang and Yang, Jingkang and Loy, Chen Change and Liu, Ziwei},\n    booktitle={IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition (CVPR)},\n    year={2022}\n}\n\n@article{zhou2022coop,\n    title={Learning to Prompt for Vision-Language Models},\n    author={Zhou, Kaiyang and Yang, Jingkang and Loy, Chen Change and Liu, Ziwei},\n    journal={International Journal of Computer Vision (IJCV)},\n    year={2022}\n}\n```\n","# 面向视觉 - 语言模型的提示学习 (Prompt Learning for Vision-Language Models)\n\n本仓库包含了一系列研究项目的代码库，专注于通过 *提示学习 (Prompt Learning)* 将 [CLIP](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.00020) 等**视觉 - 语言模型 (Vision-Language Models)** 适配到下游数据集：\n\n* [面向视觉 - 语言模型的条件提示学习 (Conditional Prompt Learning for Vision-Language Models)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2203.05557)，发表于 CVPR, 2022。\n* [为视觉 - 语言模型学习提示 (Learning to Prompt for Vision-Language Models)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01134)，发表于 IJCV, 2022。\n\n## 更新\n\n- **07.10.2022**: 刚刚在 [CoOp](https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01134) 和 [CoCoOp](https:\u002F\u002Farxiv.org\u002Fabs\u002F2203.05557)（及其附录）中添加了在新提出的 DOSCO（DOmain Shift in COntext）**域偏移 (Domain Shift)** 基准上的结果，该基准专注于上下文域偏移，涵盖了一系列多样的分类问题。（关于 DOSCO 的论文见 [此处](https:\u002F\u002Farxiv.org\u002Fabs\u002F2209.07521)，在 DOSCO 上运行 CoOp\u002FCoCoOp 的代码见 [此处](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002Fon-device-dg)。）\n\n- **17.09.2022**: [征稿启事 (Call for Papers)](https:\u002F\u002Fkaiyangzhou.github.io\u002Fassets\u002Fcfp_ijcv_lvms.html)：IJCV 特刊《大型视觉模型的前景与风险 (The Promises and Dangers of Large Vision Models)》。\n\n- **16.07.2022**: CoOp 已被 IJCV 录用发表！\n\n- **10.06.2022**: 我们最新的工作 [神经提示搜索 (Neural Prompt Search)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.04673) 刚刚发布在 arxiv 上。它为微调像 [ViT (Vision Transformer)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11929) 这样的大型视觉模型提供了新颖的视角，因此如果您对**参数高效微调 (Parameter-Efficient Fine-Tuning)** \u002F **迁移学习 (Transfer Learning)** 感兴趣，请务必查看。代码也已公开 [在此处](https:\u002F\u002Fgithub.com\u002FDavidzhangyuanhan\u002FNOAH)。\n\n- **08.06.2022**: 如果您正在寻找绘制**少样本 (Few-shot)** 性能曲线（如我们在 CoOp 论文中展示的那些）的代码，请参见 `draw_curves.py`。\n\n- **09.04.2022**: CoOp 在 ImageNet 上的**预训练权重 (Pre-trained Weights)** 已发布 [在此处](#pre-trained-models)。\n\n- **11.03.2022**: 我们的 CVPR'22 论文 \"[面向视觉 - 语言模型的条件提示学习 (Conditional Prompt Learning for Vision-Language Models)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2203.05557)\" 的代码已发布。\n\n- **15.10.2021**: 我们发现 `best_val` 模型和 `last_step` 模型取得了相似的性能，因此我们将所有数据集的 `TEST.FINAL_MODEL` 设置为 `\"last_step\"` 以节省训练时间。为什么我们使用 `best_val`：([tiny](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fblob\u002Fmain\u002Fdatasets\u002Foxford_pets.py#L32)) 验证集是为**线性探测 (Linear Probe)** 方法设计的，该方法需要对其**超参数 (Hyperparameters)** 进行大量调整，因此我们也为 CoOp 使用了 `best_val` 模型以进行公平比较（这样两种方法都可以访问验证集）。\n\n- **09.10.2021**: Dassl 的 transforms.py 进行了重要更改。请从 https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FDassl.pytorch 和本仓库拉取最新的提交，以确保代码能正常工作。特别是，1) `center_crop` 现在成为测试时的默认变换（在调整较小边缘的大小以保持图像纵横比后应用），2) 对于训练，当使用 `random_crop` 或 `random_resized_crop` 时，`Resize(cfg.INPUT.SIZE)` 被禁用。请阅读此 [issue](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fissues\u002F8) 了解这些更改如何影响性能。\n\n- **18.09.2021**: 我们修复了 Dassl 中的一个错误，该错误可能导致当数据集大小小于**批次大小 (Batch Size)** 时（由于 `drop_last=True`），**数据加载器 (Data Loader)** 的长度为零（因此不会执行任何训练）。请拉取 Dassl 的最新提交 (>= `8eecc3c`)。此错误导致 CoOp 在 EuroSAT 的 1-shot 和 2-shot 设置中结果较低（其他设置均正确）。我们将在 arxiv 上更新论文以修复此错误。\n\n## 如何安装\n本代码构建在优秀的工具箱 [Dassl.pytorch](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FDassl.pytorch) 之上，因此您需要先安装 `dassl` 环境。只需按照 [此处](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FDassl.pytorch#installation) 描述的说明安装 `dassl` 以及 PyTorch。之后，在 `CoOp\u002F` 目录下运行 `pip install -r requirements.txt` 以安装 [CLIP](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP) 所需的其他几个包（这应在激活 `dassl` 时完成）。然后，您就可以开始使用了。\n\n遵循 [DATASETS.md](DATASETS.md) 安装数据集。\n\n## 如何运行\n\n点击下面的论文以查看运行代码以复现结果的详细说明。\n\n* [为视觉 - 语言模型学习提示 (Learning to Prompt for Vision-Language Models)](COOP.md)\n* [面向视觉 - 语言模型的条件提示学习 (Conditional Prompt Learning for Vision-Language Models)](COCOOP.md)\n\n## 模型与结果\n\n- 基于 RN50, RN101, ViT-B\u002F16 和 ViT-B\u002F32 的 CoOp 在 ImageNet 上的**预训练权重 (Pre-trained Weights)**（包括 M=16 和 M=4）可通过此 [链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F18ypxfd82RR0pizc5MM1ZWDYDk4j0BtPF\u002Fview?usp=sharing) 下载。这些权重可用于复现 CoOp 论文表 1 中的结果（即 ImageNet 及其四个具有**域偏移 (Domain Shift)** 变体的结果）。要加载权重并运行评估代码，您需要指定 `--model-dir` 和 `--load-epoch`（例如参见此 [脚本](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fblob\u002Fmain\u002Fscripts\u002Feval.sh)）。\n- 原始数值结果可在该 [Google Drive 链接](https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F12_kaFdD0nct9aUIrDoreY0qDunQ9q9tv\u002Fedit?usp=sharing&ouid=100312610418109826457&rtpof=true&sd=true) 中找到。\n\n## 引用\n如果您在研究中使用此代码，请引用以下论文\n\n```bash\n@inproceedings{zhou2022cocoop,\n    title={Conditional Prompt Learning for Vision-Language Models},\n    author={Zhou, Kaiyang and Yang, Jingkang and Loy, Chen Change and Liu, Ziwei},\n    booktitle={IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition (CVPR)},\n    year={2022}\n}\n\n@article{zhou2022coop,\n    title={Learning to Prompt for Vision-Language Models},\n    author={Zhou, Kaiyang and Yang, Jingkang and Loy, Chen Change and Liu, Ziwei},\n    journal={International Journal of Computer Vision (IJCV)},\n    year={2022}\n}\n```","# CoOp 快速上手指南\n\n**CoOp** (Conditional Prompt Learning) 是一个专注于通过提示学习（Prompt Learning）将视觉语言模型（如 CLIP）适配到下游数据集的代码库。本指南帮助您快速搭建环境并运行基础任务。\n\n## 1. 环境准备\n\n请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux \u002F macOS \u002F Windows\n*   **Python**: 建议版本 3.6+\n*   **深度学习框架**: PyTorch (需根据 CUDA 版本选择对应版本)\n*   **其他工具**: Git, Conda (推荐用于环境管理)\n\n> **注意**: 由于涉及图像处理和大规模模型推理，建议使用配备 NVIDIA GPU 的设备以加速训练和评估。\n\n## 2. 安装步骤\n\n### 2.1 克隆代码库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp.git\ncd CoOp\n```\n\n### 2.2 安装依赖环境\n本项目基于 [Dassl.pytorch](https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FDassl.pytorch) 构建，需先配置 `dassl` 环境。\n\n1.  **安装 Dassl 及 PyTorch**:\n    请参考 Dassl 官方文档进行安装：\n    ```bash\n    # 参考链接：https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FDassl.pytorch#installation\n    ```\n\n2.  **安装 CoOp 特定依赖**:\n    在激活 `dassl` 环境后，进入 CoOp 目录安装额外包：\n    ```bash\n    pip install -r requirements.txt\n    ```\n\n3.  **安装数据集**:\n    按照项目根目录下的 `DATASETS.md` 文件说明下载并配置所需的数据集。\n\n## 3. 基本使用\n\n### 3.1 获取预训练模型\n为了复现论文结果或进行推理，您需要下载在 ImageNet 上预训练的权重。\n\n*   **下载地址**: [Google Drive Link](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F18ypxfd82RR0pizc5MM1ZWDYDk4j0BtPF\u002Fview?usp=sharing)\n*   **包含内容**: RN50, RN101, ViT-B\u002F16, ViT-B\u002F32 等模型的 M=16 & M=4 权重。\n\n### 3.2 模型评估示例\n加载预训练权重并进行评估时，需指定模型目录和 epoch。参考脚本 `scripts\u002Feval.sh` 中的参数结构：\n\n```bash\npython test.py \\\n    --model-dir \u003Cpath_to_model_dir> \\\n    --load-epoch \u003Cepoch_number> \\\n    --dataset \u003Cyour_dataset_name>\n```\n\n### 3.3 详细训练指令\n如需复现论文中的训练流程（Few-shot 设置、不同变体等），请查阅项目内的具体文档：\n\n*   **Learning to Prompt for Vision-Language Models**: 查看 [`COOP.md`](COOP.md)\n*   **Conditional Prompt Learning for Vision-Language Models**: 查看 [`COCOOP.md`](COCOOP.md)\n\n### 3.4 性能曲线绘制\n若需绘制 Few-shot 性能曲线（类似论文图表），可运行：\n```bash\npython draw_curves.py\n```","某智慧农业团队正在构建一套基于图像的植物病害诊断系统，需将通用视觉模型适配到特定作物的罕见病种上。\n\n### 没有 CoOp 时\n- 传统微调方式需要更新整个 CLIP 模型参数，显存需求巨大，普通服务器难以支撑。\n- 面对仅有几十张样本的罕见病害，全量训练极易过拟合，导致识别准确率大幅下降。\n- 每当发现新病害类型，必须重新收集数据并从头训练模型，迭代周期长达数周。\n- 推理阶段模型体积庞大，无法流畅运行在农户使用的低端智能手机或边缘设备上。\n\n### 使用 CoOp 后\n- 仅通过可学习的连续提示向量适配任务，冻结主干网络，训练资源消耗降低九成以上。\n- 利用上下文感知能力，在极少样本（如 16 张图）下即可实现高精度的分类性能。\n- 新增病害类别只需训练对应的提示词，无需触碰视觉编码器，上线时间缩短至小时级。\n- 模型轻量化且兼容性强，轻松部署到移动终端，满足田间地头实时诊断的需求。\n\nCoOp 通过高效的提示学习机制，让视觉语言模型在数据稀缺场景下也能快速落地。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKaiyangZhou_CoOp_5d6ceb0b.png","KaiyangZhou","Kaiyang","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FKaiyangZhou_9db37149.png",null,"kaiyangzhou","https:\u002F\u002Fkaiyangzhou.github.io","https:\u002F\u002Fgithub.com\u002FKaiyangZhou",[84,88],{"name":85,"color":86,"percentage":87},"Python","#3572A5",95.8,{"name":89,"color":90,"percentage":91},"Shell","#89e051",4.2,2191,236,"2026-04-03T09:27:31","MIT","未说明",{"notes":98,"python":96,"dependencies":99},"需先安装 Dassl.pytorch 环境及 PyTorch，再运行 pip install -r requirements.txt 安装依赖；数据集需参考 DATASETS.md 单独安装",[100,101,102],"dassl","pytorch","clip",[18],[105,106,107],"foundation-models","multimodal-learning","prompt-learning",5,"2026-03-27T02:49:30.150509","2026-04-06T07:13:17.843400",[112,117,122,127,132,137],{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},2749,"为什么在 StanfordCars 数据集上无法复现报告的准确率？","可能是因为使用了过时的数据增强版本。更新 `Dassl` 库后，准确率可提升至约 55.86%。此外，请确保运行的是 `zeroshot.sh` 的零样本评估脚本，而非训练日志。","https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fissues\u002F26",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},2750,"CoCoOp 的 GPU 显存占用和训练时间为何远高于 CoOp？","这是因为 CoCoOp 的条件设计（conditional design）开销较大。建议参考作者的最新工作 https:\u002F\u002Farxiv.org\u002Fpdf\u002F2210.07225.pdf，该方案移除了条件设计并利用多模态提示学习，在保持效果的同时显著提升了效率。","https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fissues\u002F21",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},2751,"为什么 token 前缀必须使用 buffer 类型而不是直接赋值？","使用 buffer 是为了确保在加载模型权重时正确处理这些参数。根据讨论，buffer 类型的 token 在 CLIP Text Transformer 编码后仍作为全局嵌入使用，且会在 Transformer 学习过程中得到更新，不会像普通变量那样被忽略。","https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fissues\u002F16",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},2752,"如何使用 CoOp 预训练权重进行多标签 Top-K 预测？","首先需预处理数据集，将图片路径、类别名称和 ID 组合成类似 `split_zhou_xxxx.json` 格式的文件（参考 DATASETS.md）。其次，需按照 DASSL 的要求编写 DataLoader。注意处理优化后的 prompt token 与 [CLS] 的拼接形状问题，确保匹配 CLIP 文本编码器的输入要求。","https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fissues\u002F56",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},2753,"不同的随机种子会导致结果差异巨大吗？","在使用 16 shots 设置下，通常不应出现如此大的方差。建议检查环境配置和骨干网络（backbone）。作者提供的测试结果显示，在相同设置下不同种子的方差很小（DTD 约 1.23%，Flowers 约 1.16%），若差异过大可能与环境或代码实现有关。","https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fissues\u002F24",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},2754,"如何正确复现 CoOp 论文中的 DOSCO 实验结果？","需严格遵循 README.md 指引，包括引入特定的配置文件（on-device-dg\u002Fconfigs\u002Fdatasets\u002Fp_*.yaml）、数据集 Python 文件以及修改 train.py 以支持运行。同时确认表格中的分数是否为 3 个种子的平均值，并检查 torch seed 是否固定以确保一致性。","https:\u002F\u002Fgithub.com\u002FKaiyangZhou\u002FCoOp\u002Fissues\u002F55",[]]