[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-f-dangel--backpack":3,"tool-f-dangel--backpack":64},[4,17,27,35,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[13,14,15,43],"视频",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":23,"last_commit_at":50,"category_tags":51,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":23,"last_commit_at":58,"category_tags":59,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,60,43,61,15,62,26,13,63],"数据工具","插件","其他","音频",{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":82,"owner_website":83,"owner_url":84,"languages":85,"stars":119,"forks":120,"last_commit_at":121,"license":122,"difficulty_score":123,"env_os":124,"env_gpu":125,"env_ram":124,"env_deps":126,"category_tags":131,"github_topics":81,"view_count":23,"oss_zip_url":81,"oss_zip_packed_at":81,"status":16,"created_at":132,"updated_at":133,"faqs":134,"releases":163},4149,"f-dangel\u002Fbackpack","backpack","BackPACK - a backpropagation package built on top of PyTorch which efficiently computes quantities other than the gradient.","BackPACK 是一款构建在 PyTorch 之上的高效反向传播扩展包，旨在突破传统深度学习框架仅能计算梯度的限制。在深度学习研究与开发中，研究人员往往需要获取比单一梯度更丰富的信息，例如迷你批次中每个样本的独立梯度、梯度方差估计、二阶矩，以及对角或克罗内克近似等二阶信息。虽然这些计算在理论上并不昂贵，通常只需对现有反向传播过程进行微调并复用中间信息，但在常规软件环境中实现起来却十分困难且繁琐。\n\nBackPACK 巧妙地解决了这一痛点，它通过模块化设计，让开发者能够轻松“打包”并提取这些额外的高阶统计量，而无需手动重写复杂的反向传播逻辑。其核心亮点在于极高的计算效率，能够在几乎不增加额外开销的前提下，复用反向传播过程中的中间结果来并行计算多种衍生指标。\n\n这款工具特别适合从事深度学习算法研究的研究人员、需要调试模型不确定性或优化高阶优化器的开发者，以及希望深入探索神经网络内部机制的进阶用户。无论是进行贝叶斯深度学习实验、分析梯度噪声，还是开发新型优化算法，BackPACK 都能提供强有力的底层支持，让复杂数学量的计算变得像调用标准 API 一样简单自然。","# \u003Cimg alt=\"BackPACK\" src=\".\u002Flogo\u002Fbackpack_logo_torch.svg\" height=\"90\"> BackPACK: Packing more into backprop\n\n[![Travis](https:\u002F\u002Ftravis-ci.org\u002Ff-dangel\u002Fbackpack.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Ff-dangel\u002Fbackpack)\n[![Coveralls](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Ff-dangel\u002Fbackpack\u002Fbadge.svg?branch=master)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Ff-dangel\u002Fbackpack)\n[![Python 3.8+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.8+-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002Frelease\u002Fpython-370\u002F)\n\nBackPACK is built on top of [PyTorch](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch). It efficiently computes quantities other than the gradient.\n\n- **Website:** https:\u002F\u002Fbackpack.pt\n- **Documentation:** https:\u002F\u002Fdocs.backpack.pt\u002Fen\u002Fmaster\u002F\n- **Bug reports & feature requests:** https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fissues\n\nProvided quantities include:\n- Individual gradients from a mini-batch\n- Estimates of the gradient variance or second moment\n- Approximate second-order information (diagonal and Kronecker approximations)\n\n**Motivation:** Computation of most quantities is not necessarily expensive (often just a small modification of the existing backward pass where backpropagated information can be reused). But it is difficult to do in the current software environment.\n\n\n## Installation\n```bash\npip install backpack-for-pytorch\n```\n\n## Examples\n- [Basic usage](https:\u002F\u002Fdocs.backpack.pt\u002Fen\u002Fmaster\u002Fbasic_usage\u002Fexample_all_in_one.html)\n- [Some use cases](https:\u002F\u002Fdocs.backpack.pt\u002Fen\u002Fmaster\u002Fuse_cases\u002Findex.html)\n\n#\n## Contributing\nBackPACK is actively being developed. \nWe are appreciating any help.\nIf you are considering to contribute, do not hesitate to contact us.\nAn overview of the development procedure is provided in the [developer `README`](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fmaster\u002FREADME-dev.md).\n\n## How to cite\nIf you are using BackPACK, consider citing the [paper](https:\u002F\u002Fopenreview.net\u002Fforum?id=BJlrF24twB) \n```\n@inproceedings{dangel2020backpack,\n    title     = {Back{PACK}: Packing more into Backprop},\n    author    = {Felix Dangel and Frederik Kunstner and Philipp Hennig},\n    booktitle = {International Conference on Learning Representations},\n    year      = {2020},\n    url       = {https:\u002F\u002Fopenreview.net\u002Fforum?id=BJlrF24twB}\n}\n```\n\n###### _BackPACK is not endorsed by or affiliated with Facebook, Inc. PyTorch, the PyTorch logo and any related marks are trademarks of Facebook, Inc._\n\n","# \u003Cimg alt=\"BackPACK\" src=\".\u002Flogo\u002Fbackpack_logo_torch.svg\" height=\"90\"> BackPACK：在反向传播中封装更多内容\n\n[![Travis](https:\u002F\u002Ftravis-ci.org\u002Ff-dangel\u002Fbackpack.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Ff-dangel\u002Fbackpack)\n[![Coveralls](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Ff-dangel\u002Fbackpack\u002Fbadge.svg?branch=master)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Ff-dangel\u002Fbackpack)\n[![Python 3.8+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.8+-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002Frelease\u002Fpython-370\u002F)\n\nBackPACK 构建于 [PyTorch](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch) 之上。它能够高效地计算梯度之外的其他量。\n\n- **官网:** https:\u002F\u002Fbackpack.pt\n- **文档:** https:\u002F\u002Fdocs.backpack.pt\u002Fen\u002Fmaster\u002F\n- **问题报告与功能请求:** https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fissues\n\n提供的量包括：\n- 小批量中的单个样本梯度\n- 梯度方差或二阶矩的估计\n- 近似的二阶信息（对角线近似和克罗内克近似）\n\n**动机:** 计算大多数量并不一定很昂贵（通常只需对现有的反向传播过程进行少量修改，即可复用已传播的信息）。然而，在当前的软件环境中实现起来却较为困难。\n\n\n## 安装\n```bash\npip install backpack-for-pytorch\n```\n\n## 示例\n- [基本用法](https:\u002F\u002Fdocs.backpack.pt\u002Fen\u002Fmaster\u002Fbasic_usage\u002Fexample_all_in_one.html)\n- [一些使用场景](https:\u002F\u002Fdocs.backpack.pt\u002Fen\u002Fmaster\u002Fuse_cases\u002Findex.html)\n\n#\n## 贡献\nBackPACK 目前仍在积极开发中。\n我们非常欢迎任何帮助。\n如果您考虑贡献代码，请随时与我们联系。\n开发流程的概述请参阅 [开发者 README](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fmaster\u002FREADME-dev.md)。\n\n## 如何引用\n如果您正在使用 BackPACK，请考虑引用以下论文：\n```\n@inproceedings{dangel2020backpack,\n    title     = {Back{PACK}: 在反向传播中封装更多内容},\n    author    = {Felix Dangel 和 Frederik Kunstner 和 Philipp Hennig},\n    booktitle = {国际学习表示会议},\n    year      = {2020},\n    url       = {https:\u002F\u002Fopenreview.net\u002Fforum?id=BJlrF24twB}\n}\n```\n\n###### _BackPACK 并未得到 Facebook, Inc. 的认可或与其有隶属关系。PyTorch、PyTorch 标志及任何相关标识均为 Facebook, Inc. 的商标。_","# BackPACK 快速上手指南\n\nBackPACK 是一个构建在 PyTorch 之上的开源工具，旨在高效计算除梯度以外的更多反向传播信息（如单样本梯度、梯度方差估计、二阶近似信息等），而无需显著增加计算成本。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n- **操作系统**：Linux, macOS 或 Windows\n- **Python 版本**：3.8 及以上\n- **核心依赖**：[PyTorch](https:\u002F\u002Fpytorch.org\u002F) (需预先安装)\n\n> **提示**：国内用户建议在安装 PyTorch 时使用清华或中科大镜像源，以加速下载。\n\n## 安装步骤\n\n使用 `pip` 即可快速安装 BackPACK：\n\n```bash\npip install backpack-for-pytorch\n```\n\n**国内加速安装方案**：\n如果下载速度较慢，推荐使用国内镜像源进行安装：\n\n```bash\npip install backpack-for-pytorch -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 基本使用\n\nBackPACK 的使用非常直观，只需将标准的 PyTorch `loss.backward()` 替换为 BackPACK 的上下文管理器即可提取额外信息。\n\n以下是一个计算**单样本梯度**（Individual Gradients）的最小化示例：\n\n```python\nimport torch\nimport torch.nn as nn\nfrom backpack import backpack, extend\nfrom backpack.extensions import BatchGrad\n\n# 1. 定义并扩展模型与损失函数\nmodel = extend(nn.Linear(5, 1))\ncriterion = extend(nn.MSELoss())\n\n# 2. 创建一个小批量数据 (Batch size = 4)\nX = torch.randn(4, 5)\ny = torch.randn(4, 1)\n\n# 3. 前向传播\noutput = model(X)\nloss = criterion(output, y)\n\n# 4. 使用 backpack 上下文管理器提取额外信息\n# 此处请求计算每个样本的梯度 (BatchGrad)\nwith backpack(BatchGrad()):\n    loss.backward()\n\n# 5. 访问结果\n# model.weight.grad_batch 现在包含形状为 [4, 1, 5] 的张量\n# 代表 batch 中每个样本对应的权重梯度\nprint(\"单样本梯度形状:\", model.weight.grad_batch.shape)\n```\n\n**关键点说明：**\n1. 使用 `extend()` 包装你的 `nn.Module` 模型和 `nn.Loss` 损失函数。\n2. 在 `loss.backward()` 外部包裹 `with backpack(...):` 上下文。\n3. 在上下文中指定所需的扩展功能（如 `BatchGrad`, `Variance`, `DiagHessian` 等）。\n4. 计算完成后，额外的信息将直接存储在参数的 `.grad_*` 属性中。\n\n更多详细用例请参考官方文档：[https:\u002F\u002Fdocs.backpack.pt](https:\u002F\u002Fdocs.backpack.pt)","某医疗影像实验室的研究团队正在训练一个用于早期肿瘤检测的深度学习模型，并急需评估模型在少量样本下的预测不确定性以通过伦理审查。\n\n### 没有 backpack 时\n- 若要获取迷你批次（mini-batch）中每个样本的独立梯度而非平均梯度，必须编写低效的循环逐样本反向传播，导致训练速度下降数十倍。\n- 估算梯度方差或二阶矩需要手动修改损失函数或多次重复前向与反向过程，代码极其繁琐且容易出错。\n- 想要近似二阶优化信息（如对角 Hessian 或 Kronecker 因子）时，因显存爆炸往往被迫放弃，只能使用基础的一阶优化器。\n- 现有的 PyTorch 原生接口仅支持标准梯度计算，缺乏直接提取这些高阶统计量的内置方法，研发周期被严重拉长。\n\n### 使用 backpack 后\n- 只需几行配置即可在一次标准反向传播中高效提取所有样本的独立梯度，计算开销几乎与常规训练持平。\n- 直接调用扩展模块即可获得精确的梯度方差和二阶矩估计，无需重写任何底层自动求导逻辑。\n- 轻松获取对角化或 Kronecker 近似的二阶信息，使得团队能够部署更先进的优化算法并量化模型置信度。\n- 基于 PyTorch 无缝集成，研究人员将原本需要数周定制的数学推导工作缩短为几小时的实验迭代。\n\nbackpack 的核心价值在于它打破了 PyTorch 仅能计算平均梯度的限制，让开发者能以极低的计算成本“免费”获得丰富的高阶反向传播信息。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ff-dangel_backpack_8599528d.png","f-dangel","Felix Dangel","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ff-dangel_2839363f.jpg","Assistant professor at Concordia University and Mila.\r\n\r\nUsing information beyond the gradient to accelerate ML.","@ProbabilisticNumerics @VectorInstitute","Montreal",null,"f_dangel","https:\u002F\u002Ffdangel.com","https:\u002F\u002Fgithub.com\u002Ff-dangel",[86,90,94,98,102,106,110,113,116],{"name":87,"color":88,"percentage":89},"Python","#3572A5",96.2,{"name":91,"color":92,"percentage":93},"HTML","#e34c26",1.9,{"name":95,"color":96,"percentage":97},"SCSS","#c6538c",0.9,{"name":99,"color":100,"percentage":101},"Makefile","#427819",0.5,{"name":103,"color":104,"percentage":105},"Ruby","#701516",0.2,{"name":107,"color":108,"percentage":109},"Shell","#89e051",0.1,{"name":111,"color":112,"percentage":109},"JavaScript","#f1e05a",{"name":114,"color":115,"percentage":109},"Batchfile","#C1F12E",{"name":117,"color":118,"percentage":109},"TeX","#3D6117",610,57,"2026-03-27T06:56:19","MIT",1,"未说明","未说明（基于 PyTorch，通常支持 CPU 和 NVIDIA GPU，具体取决于用户安装的 PyTorch 版本）",{"notes":127,"python":128,"dependencies":129},"该工具构建在 PyTorch 之上，用于高效计算梯度以外的量（如个体梯度、梯度方差估计、二阶信息近似等）。安装命令为 `pip install backpack-for-pytorch`。具体的硬件需求（如显存大小）取决于所运行的模型规模和批量大小，README 中未给出具体数值建议。","3.8+",[130],"torch",[13],"2026-03-27T02:49:30.150509","2026-04-06T11:56:40.695207",[135,140,145,149,154,159],{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},18901,"如何为自定义模块添加一阶扩展支持？","你需要实现一个继承自 `FirstOrderModuleExtension` 的类。关键步骤包括：\n1. 在 `__init__` 中调用 `super().__init__(params=[...])` 指定参数。\n2. 为每个参数实现对应的方法（如 `weight`），该方法接收 `ext`, `module`, `g_inp`, `g_out` 等参数。\n3. 注意：你可能需要在 `ScaleFunction` 和 `ScaleModuleBatchGrad` 中分别实现 backward 逻辑。如果输出维度大于 2，需显式计算链式法则以获取正确的批量梯度。\n详细教程请参考官方文档：https:\u002F\u002Fdocs.backpack.pt\u002Fen\u002Fdevelopment\u002Fuse_cases\u002Fexample_custom_module.html","https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fissues\u002F149",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},18902,"为什么在使用自定义模块进行二阶扩展（如 DiagGGNExact）时会报错？","BackPACK 的二阶扩展要求前向传播中的所有操作必须通过 `nn.Module` 执行，而不能直接使用函数式操作（如 `torch.reshape`, `torch.split` 等），因为这些操作对 BackPACK 是“不可见”的，会导致内部形状检查失败或反向传播机制断裂。\n解决方案：\n1. 将涉及的操作封装成自定义的 `nn.Module`。\n2. 确保自定义模块正确实现了 `ModuleExtension` 并定义了 `backpropagate` 方法。\n3. 避免在前向传递中直接修改张量形状，改用模块化的方式处理。","https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fissues\u002F321",{"id":146,"question_zh":147,"answer_zh":148,"source_url":144},18903,"如何在自定义无参数模块（如加权求和）上应用 DiagGGNExact？","即使模块没有可学习参数，若要支持二阶扩展，仍需为其定义 `ModuleExtension`。\n具体步骤：\n1. 创建继承自 `ModuleExtension` 的类（例如 `DiagGGNSumModule`）。\n2. 实现 `backpropagate` 方法，在其中获取输入张量（使用 `self.get_inputs(module)`），并根据数学推导计算所需的雅可比或 GGN 相关量。\n3. 使用 `einops` 或 `torch.einsum` 等工具高效实现矩阵运算。\n示例代码片段：\n```python\nclass DiagGGNSumModule(ModuleExtension):\n    def backpropagate(self, extension, module, g_inp, g_out, bpQuantities):\n        inputs = self.get_inputs(module)\n        x, w = inputs[0], inputs[1]\n        # 根据具体公式计算 J_w 等中间量\n        ...\n```",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},18904,"v1.4.0 版本中使用 backward(inputs=...) 指定子模块参数时为何报错 'Parameter' object has no attribute 'grad_batch'？","这是 v1.4.0 的行为变更。当使用 `backward(inputs=...)` 仅对部分参数计算梯度时，BackPACK 可能不会为这些参数填充 `.grad_batch` 属性，除非整个模型的梯度都被计算。\n workaround 方案：\n- 不要使用 `inputs` 参数限制反向传播范围，而是对整个模型调用 `loss.backward()`，然后在后续只访问你关心的子模块参数的 `.grad_batch`。\n- 或者回退到 v1.3.0 版本（如果项目依赖此行为）。\n注意：目前尚无法在 BackPACK 内部自动检测并警告 `inputs` 参数的不当使用。","https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fissues\u002F233",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},18905,"遇到 'Conv2d' object has no attribute 'input0' 错误怎么办？","该错误通常表明 BackPACK 未能正确捕获模块的输入张量，可能是由于：\n1. 模块未被正确 `extend`；\n2. 前向传播路径中存在非模块化的操作干扰了钩子注册；\n3. 使用了不被支持的动态结构。\n建议检查：\n- 确保所有涉及的 `nn.Module`（包括 Conv2d）都调用了 `extend()`；\n- 避免在前向中使用 inplace 操作或脱离模块的函数式调用；\n- 若问题依旧，尝试简化模型结构定位故障点。\n注：此问题在某些特定场景下已被标记为 wontfix，用户反馈可通过其他方式（如梯度裁剪替代方案）绕过。","https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fissues\u002F212",{"id":160,"question_zh":161,"answer_zh":162,"source_url":153},18906,"如何调试 BackPACK 扩展运行过程中的问题？","启用调试日志可以帮助追踪扩展执行流程：\n1. 设置 logging 级别为 DEBUG；\n2. 观察输出中类似 `[DEBUG] Running extension \u003C...> on \u003CModule>` 的信息，确认扩展是否按预期挂载到各模块；\n3. 检查是否有扩展钩子未触发或顺序异常。\n示例输出：\n```\n[DEBUG] Extending Sequential(...)\n[DEBUG] Running extension \u003CBatchGrad object> on CrossEntropyLoss()\n[DEBUG] Running extension hook on CrossEntropyLoss()\n```\n这有助于判断是扩展未注册、模块未扩展，还是反向传播路径中断。",[164,169,174,179,184,189,194,199,204,209,214,218,223],{"id":165,"version":166,"summary_zh":167,"released_at":168},110678,"1.7.1","详情请参阅[更新日志](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fmaster\u002Fchangelog.md#171---2024-11-15)。","2024-11-15T16:27:55",{"id":170,"version":171,"summary_zh":172,"released_at":173},110679,"1.7.0","详情请参阅[变更日志](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fmaster\u002Fchangelog.md#170---2024-11-12)。","2024-11-12T15:47:01",{"id":175,"version":176,"summary_zh":177,"released_at":178},110680,"1.6.0","详情请参阅[更新日志](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fmaster\u002Fchangelog.md#160---2023-06-26)。","2023-07-12T18:19:20",{"id":180,"version":181,"summary_zh":182,"released_at":183},110681,"1.5.2","详情请参阅 [`changelog`](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fmaster\u002Fchangelog.md#152---2022-12-19)。","2022-12-19T12:59:03",{"id":185,"version":186,"summary_zh":187,"released_at":188},110682,"1.5.1","详情请参阅 [`changelog`](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fmaster\u002Fchangelog.md#151---2022-11-03)。","2022-11-03T09:37:49",{"id":190,"version":191,"summary_zh":192,"released_at":193},110683,"1.5.0","详情请参阅[变更日志](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fdevelopment\u002Fchangelog.md#150---2022-02-15)。","2022-02-15T11:42:39",{"id":195,"version":196,"summary_zh":197,"released_at":198},110684,"1.4.0","详情请参阅[变更日志](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fmaster\u002Fchangelog.md#140---2021-10-12)。","2021-10-11T20:03:31",{"id":200,"version":201,"summary_zh":202,"released_at":203},110685,"1.3.0","详情请参阅[变更日志](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fblob\u002Fmaster\u002Fchangelog.md#130---2021-06-16)。","2021-06-16T14:16:47",{"id":205,"version":206,"summary_zh":207,"released_at":208},110686,"1.2.0","### 新增\n- 已弃用 `python3.5`，并测试了与 PyTorch 1.6.0 的兼容性 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F88)]\n- 支持 `Conv1d`、`Conv3d`、`ConvTranspose1d`、`ConvTranspose2d`、`ConvTranspose3d` 的一阶扩展\n  - `extensions.BatchGrad` [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F92)]\n  - `extensions.BatchL2Grad` [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F100)]\n  - `extensions.SumGradSquared` 和 `extensions.Variance` [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F105)]\n  - 对不支持的特殊超参数抛出异常 [[PR1](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F108), [PR2](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F109)]\n- 新示例：通过 BackPACK 量反向传播 [[commit](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fcommit\u002F8ef33a42badded9a1d9b5013f8686bfa7feec6e7)]\n- API 中新增扩展：块对角曲率乘积\n  - 通过 `extensions.HMP`、`extensions.GGNMP`、`extensions.PCHMP` 公开 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F73)]\n  - 示例：Hutchinson 迹估计 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F98)] 和使用共轭梯度法的无 Hessian 优化 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F99)]\n### 修复\n- 在对角 GGN 二阶优化示例中添加缺失的 `zero_grad` [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F101)]\n### 内部改进\n- 提高了测试覆盖率\n  - 为 `backpack.extensions` 新增测试套件 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F90)]\n  - 为 `backpack.core` 新增测试套件 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F75)]\n- 在 `backpack.core` 中实现了以下操作的导数\n  - 更多激活函数 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F76)]\n  - `Conv1d`、`Conv3d` [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F79)]\n  - `ConvTranspose1d`、`ConvTranspose2d`、`ConvTranspose3d` [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F84)]\n- 重构 `firstorder` 扩展以共享更多代码 [[PR1](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F105), [PR2](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F105)]\n- 移除了 `detach`，以支持对量进行微分 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F70)]","2020-11-02T20:20:39",{"id":210,"version":211,"summary_zh":212,"released_at":213},110687,"1.1.1","### 新增\n- 改进了文档，迁移至 [ReadTheDocs](https:\u002F\u002Fdocs.backpack.pt) [[PR1](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F57)、[PR2](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F58)、[PR3](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F66)]\n- 测试了与 PyTorch 1.5.0 的兼容性。\n- 在 `MSELoss` 中支持向量的二阶反向传播 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F61)]\n- 添加了健全性检查，当使用以下情况时会发出警告：\n  `inplace` 修改 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F59)]、\n  不支持的损失函数参数 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F60)]、\n  二阶反向传播中的自定义损失函数 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F60)]\n\n### 修复\n- 移除了 `opt_einsum` 依赖 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F54)]\n- 修复了 `Conv2d`、`MaxPool2d` 和 `AvgPool2d` 的 KFRA 实现缺失及反向传播错误 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F53)]\n- 移除 `try_view`，改用 `reshape` 以利用 PyTorch 1.4.0 的改进 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F50)]\n\n### 内部\n- 文档字符串风格 [[PR](https:\u002F\u002Fgithub.com\u002Ff-dangel\u002Fbackpack\u002Fpull\u002F52)]","2020-04-29T18:54:25",{"id":215,"version":216,"summary_zh":81,"released_at":217},110688,"1.1.0","2020-02-11T19:27:37",{"id":219,"version":220,"summary_zh":221,"released_at":222},110689,"1.0.1","This is not a new release at the time of writing. It is a tag to track [v1.0.1 on PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fbackpack-for-pytorch\u002F1.0.1\u002F)\r\n","2020-01-23T19:38:04",{"id":224,"version":225,"summary_zh":81,"released_at":226},110690,"1.0.0","2019-09-26T18:43:55"]