[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-locuslab--optnet":3,"tool-locuslab--optnet":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 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[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},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"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":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":93,"env_os":94,"env_gpu":95,"env_ram":94,"env_deps":96,"category_tags":103,"github_topics":104,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":110,"updated_at":111,"faqs":112,"releases":146},9300,"locuslab\u002Foptnet","optnet","OptNet: Differentiable Optimization as a Layer in Neural Networks","OptNet 是一个基于 PyTorch 的开源项目，旨在将“可微分优化”作为神经网络中的一个独立层级。传统深度学习模型通常试图通过堆叠更多网络层来隐式地学习解决复杂的数学优化问题，但这往往效率低下且缺乏精确性，特别是在处理力学、经济学或运筹学等具有明确优化结构的领域时。OptNet 解决了这一痛点，它允许开发者直接在模型架构中嵌入标准的二次规划（QP）求解器，使网络能够显式地利用优化理论来表达数据特征，而非仅仅依赖黑盒式的自动特征学习。\n\n该工具的核心技术亮点在于其配套的 qpth 库，这是一个专为 PyTorch 设计的高效二次规划求解器，支持反向传播，使得优化层可以像普通神经网络层一样参与端到端的训练。这意味着模型既能保留深度学习的灵活性，又能融入严谨的数学约束。\n\nOptNet 非常适合人工智能研究人员、算法工程师以及对结合深度学习与传统优化方法感兴趣的开发者使用。它在信号去噪、数独求解及特定分类任务中展现了独特优势，为探索“神经 + 符号”混合架构提供了宝贵的实验代码和理论基础。如果你希望在模型中引入可解释性强且数学定义明确的逻辑层，OptNet 是一个值得深入研究的先驱性工","OptNet 是一个基于 PyTorch 的开源项目，旨在将“可微分优化”作为神经网络中的一个独立层级。传统深度学习模型通常试图通过堆叠更多网络层来隐式地学习解决复杂的数学优化问题，但这往往效率低下且缺乏精确性，特别是在处理力学、经济学或运筹学等具有明确优化结构的领域时。OptNet 解决了这一痛点，它允许开发者直接在模型架构中嵌入标准的二次规划（QP）求解器，使网络能够显式地利用优化理论来表达数据特征，而非仅仅依赖黑盒式的自动特征学习。\n\n该工具的核心技术亮点在于其配套的 qpth 库，这是一个专为 PyTorch 设计的高效二次规划求解器，支持反向传播，使得优化层可以像普通神经网络层一样参与端到端的训练。这意味着模型既能保留深度学习的灵活性，又能融入严谨的数学约束。\n\nOptNet 非常适合人工智能研究人员、算法工程师以及对结合深度学习与传统优化方法感兴趣的开发者使用。它在信号去噪、数独求解及特定分类任务中展现了独特优势，为探索“神经 + 符号”混合架构提供了宝贵的实验代码和理论基础。如果你希望在模型中引入可解释性强且数学定义明确的逻辑层，OptNet 是一个值得深入研究的先驱性工具。","# OptNet: Differentiable Optimization as a Layer in Neural Networks\n\nThis repository is by [Brandon Amos](http:\u002F\u002Fbamos.github.io)\nand [J. Zico Kolter](http:\u002F\u002Fzicokolter.com)\nand contains the [PyTorch](https:\u002F\u002Fpytorch.org) source code to\nreproduce the experiments in our ICML 2017 paper\n[OptNet: Differentiable Optimization as a Layer in Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1703.00443).\n\nIf you find this repository helpful in your publications,\nplease consider citing our paper.\n\n```\n@InProceedings{amos2017optnet,\n  title = {{O}pt{N}et: Differentiable Optimization as a Layer in Neural Networks},\n  author = {Brandon Amos and J. Zico Kolter},\n  booktitle = {Proceedings of the 34th International Conference on Machine Learning},\n  pages = {136--145},\n  year = {2017},\n  volume = {70},\n  series = {Proceedings of Machine Learning Research},\n  publisher ={PMLR},\n}\n```\n\n# Informal Introduction\n\n[Mathematical optimization](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMathematical_optimization)\nis a well-studied language of expressing solutions to many real-life problems\nthat come up in machine learning and many other fields such as mechanics,\neconomics, EE, operations research, control engineering, geophysics,\nand molecular modeling.\nAs we build our machine learning systems to interact with real\ndata from these fields, we often **cannot** (but sometimes can)\nsimply ``learn away'' the optimization sub-problems by adding more\nlayers in our network. Well-defined optimization problems may be added\nif you have a thorough understanding of your feature space, but\noftentimes we **don't** have this understanding and resort to\nautomatic feature learning for our tasks.\n\nUntil this repository, **no** modern deep learning library has provided\na way of adding a learnable optimization layer (other than simply unrolling\nan optimization procedure, which is inefficient and inexact) into\nour model formulation that we can quickly try to see if it's a nice way\nof expressing our data.\n\nSee our paper\n[OptNet: Differentiable Optimization as a Layer in Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1703.00443)\nand code at\n[locuslab\u002Foptnet](https:\u002F\u002Fgithub.com\u002Flocuslab\u002Foptnet)\nif you are interested in learning more about our initial exploration\nin this space of automatically learning quadratic program layers\nfor signal denoising and sudoku.\n\n## Setup and Dependencies\n\n+ Python\u002Fnumpy\u002F[PyTorch](https:\u002F\u002Fpytorch.org)\n+ [qpth](https:\u002F\u002Fgithub.com\u002Flocuslab\u002Fqpth):\n  *Our fast QP solver for PyTorch released in conjunction with this paper.*\n+ [bamos\u002Fblock](https:\u002F\u002Fgithub.com\u002Fbamos\u002Fblock):\n  *Our intelligent block matrix library for numpy, PyTorch, and beyond.*\n+ Optional: [bamos\u002FsetGPU](https:\u002F\u002Fgithub.com\u002Fbamos\u002FsetGPU):\n  A small library to set `CUDA_VISIBLE_DEVICES` on multi-GPU systems.\n\n# Denoising Experiments\n\n```\ndenoising\n├── create.py - Script to create the denoising dataset.\n├── plot.py - Plot the results from any experiment.\n├── main.py - Run the FC baseline and OptNet denoising experiments. (See arguments.)\n├── main.tv.py - Run the TV baseline denoising experiment.\n└── run-exps.sh - Run all experiments. (May need to uncomment some lines.)\n```\n\n# Sudoku Experiments\n\n+ The dataset we used in our experiments is available in `sudoku\u002Fdata`.\n\n```\nsudoku\n├── create.py - Script to create the dataset.\n├── plot.py - Plot the results from any experiment.\n├── main.py - Run the FC baseline and OptNet Sudoku experiments. (See arguments.)\n└── models.py - Models used for Sudoku.\n```\n\n# Classification Experiments\n\n```\ncls\n├── train.py - Run the FC baseline and OptNet classification experiments. (See arguments.)\n├── plot.py - Plot the results from any experiment.\n└── models.py - Models used for classification.\n```\n\n# Acknowledgments\n\nThe rapid development of this work would not have been possible without\nthe immense amount of help from the [PyTorch](https:\u002F\u002Fpytorch.org) team,\nparticularly [Soumith Chintala](http:\u002F\u002Fsoumith.ch\u002F) and\n[Adam Paszke](https:\u002F\u002Fgithub.com\u002Fapaszke).\n\n# Licensing\n\nUnless otherwise stated, the source code is copyright\nCarnegie Mellon University and licensed under the\n[Apache 2.0 License](.\u002FLICENSE).\n","# OptNet：可微优化作为神经网络中的一层\n\n本仓库由 [Brandon Amos](http:\u002F\u002Fbamos.github.io) 和 [J. Zico Kolter](http:\u002F\u002Fzicokolter.com) 开发，包含用于复现我们 ICML 2017 论文《OptNet：可微优化作为神经网络中的一层》（[arXiv:1703.00443](https:\u002F\u002Farxiv.org\u002Fabs\u002F1703.00443)）实验的 [PyTorch](https:\u002F\u002Fpytorch.org) 源代码。\n\n如果您在自己的研究工作中使用了本仓库，请考虑引用我们的论文：\n\n```\n@InProceedings{amos2017optnet,\n  title = {{O}pt{N}et: 不可微优化作为神经网络中的一层},\n  author = {Brandon Amos 和 J. Zico Kolter},\n  booktitle = {第34届国际机器学习大会论文集},\n  pages = {136--145},\n  year = {2017},\n  volume = {70},\n  series = {机器学习研究论文集},\n  publisher ={PMLR},\n}\n```\n\n# 非正式介绍\n\n[数学优化](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMathematical_optimization) 是一种被广泛研究的语言，用于表达机器学习以及力学、经济学、电气工程、运筹学、控制工程、地球物理学和分子建模等诸多领域中许多实际问题的解决方案。当我们构建机器学习系统以处理来自这些领域的真实数据时，我们往往**无法**（尽管有时可以）仅仅通过在网络中添加更多层来“学习掉”其中的优化子问题。如果对特征空间有充分的理解，就可以引入明确的优化问题；然而，通常我们并不具备这种理解，因而不得不依赖自动特征学习来完成任务。\n\n在本仓库出现之前，没有任何现代深度学习库提供过一种方法，能够将一个可学习的优化层（而非简单地展开优化过程——这种方法既低效又不精确）融入模型架构中，以便我们快速尝试并评估其是否是表达数据的一种有效方式。\n\n如果您有兴趣深入了解我们在这一领域中的初步探索，即为信号去噪和数独问题自动学习二次规划层，请参阅我们的论文《OptNet：可微优化作为神经网络中的一层》（[arXiv:1703.00443](https:\u002F\u002Farxiv.org\u002Fabs\u002F1703.00443)）以及位于 [locuslab\u002Foptnet](https:\u002F\u002Fgithub.com\u002Flocuslab\u002Foptnet) 的代码。\n\n## 设置与依赖\n\n+ Python\u002Fnumpy\u002F[PyTorch](https:\u002F\u002Fpytorch.org)\n+ [qpth](https:\u002F\u002Fgithub.com\u002Flocuslab\u002Fqpth)：\n  *我们随本文发布的 PyTorch 快速二次规划求解器。*\n+ [bamos\u002Fblock](https:\u002F\u002Fgithub.com\u002Fbamos\u002Fblock)：\n  *我们为 numpy、PyTorch 等开发的智能块矩阵库。*\n+ 可选：[bamos\u002FsetGPU](https:\u002F\u002Fgithub.com\u002Fbamos\u002FsetGPU)：\n  一个用于在多 GPU 系统上设置 `CUDA_VISIBLE_DEVICES` 的小型库。\n\n# 去噪实验\n\n```\ndenoising\n├── create.py - 用于创建去噪数据集的脚本。\n├── plot.py - 绘制任意实验的结果。\n├── main.py - 运行全连接基线和 OptNet 去噪实验。（请查看参数说明。）\n├── main.tv.py - 运行 TV 正则化基线去噪实验。\n└── run-exps.sh - 运行所有实验。（可能需要取消注释部分行。）\n```\n\n# 数独实验\n\n我们在实验中使用的数据集可在 `sudoku\u002Fdata` 中找到。\n\n```\nsudoku\n├── create.py - 用于创建数据集的脚本。\n├── plot.py - 绘制任意实验的结果。\n├── main.py - 运行全连接基线和 OptNet 数独实验。（请查看参数说明。）\n└── models.py - 用于数独问题的模型。\n```\n\n# 分类实验\n\n```\ncls\n├── train.py - 运行全连接基线和 OptNet 分类实验。（请查看参数说明。）\n├── plot.py - 绘制任意实验的结果。\n└── models.py - 用于分类问题的模型。\n```\n\n# 致谢\n\n这项工作的快速推进离不开 [PyTorch](https:\u002F\u002Fpytorch.org) 团队的大力支持，尤其是 [Soumith Chintala](http:\u002F\u002Fsoumith.ch\u002F) 和 [Adam Paszke](https:\u002F\u002Fgithub.com\u002Fapaszke) 的帮助。\n\n# 许可证\n\n除非另有说明，源代码版权归卡内基梅隆大学所有，并根据 [Apache 2.0 许可证](.\u002FLICENSE) 授权。","# OptNet 快速上手指南\n\nOptNet 是一个将可微分优化层（Differentiable Optimization Layer）集成到神经网络中的 PyTorch 库。它允许你在深度学习模型中直接嵌入二次规划（QP）求解器，适用于信号去噪、数独求解及特定分类任务等场景。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **操作系统**: Linux 或 macOS (Windows 支持可能受限，建议优先使用 Linux)\n*   **Python**: 推荐 Python 3.6+\n*   **核心框架**: PyTorch (需与 CUDA 版本匹配，如需 GPU 加速)\n*   **依赖库**:\n    *   `numpy`\n    *   `qpth`: 本项目专用的快速 QP 求解器\n    *   `bamos\u002Fblock`: 智能分块矩阵库\n\n> **提示**：国内用户安装 PyTorch 时，推荐使用清华或中科大镜像源以加速下载。\n\n## 安装步骤\n\n1.  **克隆仓库**\n    获取源代码及子模块（包含必要的依赖库）：\n    ```bash\n    git clone --recursive https:\u002F\u002Fgithub.com\u002Flocuslab\u002Foptnet.git\n    cd optnet\n    ```\n    *如果忘记加 `--recursive` 参数，请运行 `git submodule update --init --recursive`。*\n\n2.  **安装 Python 依赖**\n    建议使用虚拟环境（如 conda 或 venv），然后安装所需包。由于 `qpth` 和 `block` 通常作为子模块存在，可能需要手动安装它们：\n\n    ```bash\n    # 安装基础依赖\n    pip install numpy torch torchvision\n\n    # 安装子模块依赖 (如果在根目录没有 setup.py，需进入对应文件夹安装)\n    pip install -e qpth\n    pip install -e bamos\u002Fblock\n    \n    # 可选：多 GPU 环境工具\n    # pip install -e bamos\u002FsetGPU\n    ```\n\n    > **国内加速提示**：若 pip 下载缓慢，可添加国内镜像源：\n    > `pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple \u003Cpackage_name>`\n\n## 基本使用\n\nOptNet 的核心用法是将优化层嵌入到 `torch.nn.Module` 中。以下展示如何运行官方提供的**图像去噪（Denoising）**实验，这是最直观的上手示例。\n\n### 1. 准备数据\n首先生成去噪实验所需的数据集：\n```bash\ncd denoising\npython create.py\n```\n\n### 2. 运行实验\n执行主脚本运行全连接基线（FC baseline）和 OptNet 去噪实验：\n```bash\npython main.py --cuda\n```\n*   `--cuda`: 启用 GPU 加速（如果可用）。\n*   你可以通过 `python main.py --help` 查看其他参数，例如调整迭代次数或正则化系数。\n\n### 3. 代码集成示例\n若要在自己的模型中使用 OptNet 层，核心逻辑依赖于 `qpth` 库。以下是一个简化的概念性代码片段，展示如何在 `forward` 过程中调用优化层：\n\n```python\nimport torch\nfrom qpth.qp import QPFunction\n\n# 定义优化层参数\nqp = QPFunction(verbose=False)\n\n# 假设输入为网络中间特征\nx = torch.randn(10, 5) \n\n# 构造二次规划问题的参数 (Q, p, G, h, A, b)\n# 这里仅为示例，实际参数通常由前序网络层生成\nQ = 2 * torch.eye(5).unsqueeze(0).expand(10, 5, 5)\np = -x\nG = -torch.eye(5).unsqueeze(0).expand(10, 5, 5)\nh = torch.zeros(10, 5)\n\n# 求解优化问题\nx_opt = qp(Q, p, G, h)\n\n# x_opt 即为优化层的输出，可继续传入后续网络层\n```\n\n### 4. 可视化结果\n实验完成后，使用绘图脚本查看去噪效果对比：\n```bash\npython plot.py\n```\n\n对于**数独（Sudoku）**或**分类（Classification）**实验，操作逻辑类似，只需进入对应的 `sudoku` 或 `cls` 目录，运行 `create.py` 生成数据后，再执行 `main.py` 或 `train.py` 即可。","一家自动驾驶公司的感知团队正在开发车辆轨迹预测系统，需要确保预测出的未来路径严格符合物理运动学约束（如最大转向角、加速度限制）。\n\n### 没有 optnet 时\n- 团队试图通过堆叠更多全连接层来“隐式”学习物理规则，但模型经常输出违反物理定律的轨迹（如瞬间急转弯）。\n- 若采用传统方法将优化求解器作为后处理步骤，会导致整个流程不可导，无法通过端到端训练优化前端特征提取器。\n- 为了近似约束，不得不设计复杂的自定义损失函数，调参难度极大且收敛缓慢，难以保证解的全局最优性。\n- 简单的展开式（Unrolling）优化模拟计算效率低下，占用大量显存，无法满足车载系统的实时性要求。\n\n### 使用 optnet 后\n- 直接将二次规划（QP）定义为神经网络中的一个可微分层，强制输出天然满足硬性的物理运动学约束。\n- 利用 optnet 提供的精确反向传播能力，梯度可直接穿过优化层回传，实现了从轨迹误差到感知特征的真正端到端联合优化。\n- 无需再手工设计复杂的惩罚项损失，模型结构清晰地分离了“特征学习”与“约束求解”，显著提升了训练稳定性和收敛速度。\n- 依托其底层高效求解器 qpth，在保持高精度的同时大幅降低了推理延迟，满足了实车部署的毫秒级响应需求。\n\noptnet 的核心价值在于它将严谨的数学优化逻辑无缝融入深度学习架构，让神经网络既能灵活拟合数据，又能严格遵循现实世界的物理法则。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flocuslab_optnet_1e23b9d9.png","locuslab","CMU Locus Lab","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flocuslab_147f21ae.png","Zico Kolter's Research Group",null,"http:\u002F\u002Fwww.zicokolter.com\u002F","https:\u002F\u002Fgithub.com\u002Flocuslab",[81,85],{"name":82,"color":83,"percentage":84},"Python","#3572A5",99.4,{"name":86,"color":87,"percentage":88},"Shell","#89e051",0.6,580,81,"2026-04-11T09:10:38","Apache-2.0",4,"未说明","可选（依赖 qpth 求解器支持 CUDA），具体型号和显存大小未说明，需自行配置 CUDA_VISIBLE_DEVICES",{"notes":97,"python":94,"dependencies":98},"该项目是 2017 年 ICML 论文的代码复现，核心依赖为自定义的 QP 求解器 'qpth' 和块矩阵库 'bamos\u002Fblock'。多 GPU 环境下可可选安装 'bamos\u002FsetGPU' 来设置环境变量。由于项目年代较早，具体的 Python 版本、PyTorch 版本及 CUDA 版本在 README 中未明确指定，可能需要根据当前环境兼容性进行调整。",[99,100,101,102],"numpy","PyTorch","qpth","bamos\u002Fblock",[14],[105,106,107,108,109],"deep-learning","optimization","pytorch","paper","machine-learning","2026-03-27T02:49:30.150509","2026-04-19T06:02:50.322547",[113,118,123,128,132,137,142],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},41739,"运行数独（Sudoku）示例时遇到 `TypeError: super() takes at least 1 argument` 错误，如何解决？","这通常是因为 PyTorch 的 CPU 版本中存在一个拼写错误，导致 `btrisolve` 函数抛出未实现的错误。维护者已修复了 PyTorch 源代码中的此问题。解决方法是重新编译包含该修复补丁的 PyTorch 版本。相关修复 PR 地址：https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch\u002Fpull\u002F1185。此外，请注意 CPU 版本的训练速度可能非常慢，建议使用 GPU 进行训练。","https:\u002F\u002Fgithub.com\u002Flocuslab\u002Foptnet\u002Fissues\u002F1",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},41740,"论文中关于不等式约束矩阵梯度 $d_G$ 的公式（方程 8）是否存在印刷错误？","是的，arXiv v4 及更早版本的论文中确实存在排版错误。该错误已在 4 年前的 arXiv v5 版本中修正。正确的公式逻辑是将加法运算放在对角矩阵缩放之外，即 $d_G = D(\\lambda^{\\ast}) d_\\lambda (z^{\\ast})^T + \\lambda^{\\ast} d_z^T$，这与代码实现逻辑一致。请参考 arXiv v5 版本获取正确公式。","https:\u002F\u002Fgithub.com\u002Flocuslab\u002Foptnet\u002Fissues\u002F8",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},41741,"如何在 QP 求解器的目标函数中添加额外项或增加变量约束？","如果添加额外项后问题仍保持为二次规划（QP）形式，最简单的方法是将问题重新表述为标准形式（Standard Form）。虽然直接实现针对特定问题的求解器可能效率更高，但重构为标准形式是最便捷的途径。","https:\u002F\u002Fgithub.com\u002Flocuslab\u002Foptnet\u002Fissues\u002F6",{"id":129,"question_zh":130,"answer_zh":131,"source_url":127},41742,"该求解器是否支持求最大值（argmax）而不是最小值（argmin）？","支持。可以通过转换目标函数符号来实现最大化，即利用数学性质：$\\hat z = \\text{argmax}_z f(z) = \\text{argmin}_z -f(z)$。将目标函数取负后传入求解器即可。",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},41743,"运行去噪（denoising）示例时遇到 `RuntimeError: Unexpected number of dimensions` 错误怎么办？","这是因为 `qpth` 库中的 `QPFunction` 接口已更新，但本仓库的代码尚未同步。维护者已提交更新以兼容 Python 3。请拉取最新代码并使用 Python 3 运行。如果使用 Python 2，可能需要手动调整代码以适配新的接口维度要求。","https:\u002F\u002Fgithub.com\u002Flocuslab\u002Foptnet\u002Fissues\u002F3",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},41744,"尝试运行 CPU 版本时出现 `AssertionError` 或与 `.cuda()` 调用相关的错误，如何修复？","这是由于代码中部分 `.cuda()` 调用缺少针对 CPU 模式的检查。当设置 `cuda=False` 时，代码不应强制调用 CUDA 相关方法。解决方法是在调用 `.cuda()` 前添加条件判断（例如 `if args.cuda:`），或者直接提交 PR 修复这些遗漏的检查逻辑。","https:\u002F\u002Fgithub.com\u002Flocuslab\u002Foptnet\u002Fissues\u002F2",{"id":143,"question_zh":144,"answer_zh":145,"source_url":136},41745,"无法导入 `adact` 库且去噪数据链接失效，该如何处理？","1. 此处的性能分析（profiling）代码已过时，建议前往 `qpth` 仓库查找最新的性能分析代码。\n2. 去噪数据集的链接曾暂时失效，维护者已恢复服务器，README 中的链接应可正常工作。如果仍然失效，请留意仓库后续将数据迁移至更永久存储位置的通知。",[]]