[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-FluxML--Zygote.jl":3,"tool-FluxML--Zygote.jl":64},[4,17,27,35,43,56],{"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":23,"last_commit_at":41,"category_tags":42,"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":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"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,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"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":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":75,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":90,"env_os":91,"env_gpu":92,"env_ram":92,"env_deps":93,"category_tags":99,"github_topics":100,"view_count":10,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":107,"updated_at":108,"faqs":109,"releases":138},271,"FluxML\u002FZygote.jl","Zygote.jl","21st century AD","Zygote.jl 是 Julia 语言中一个用于自动微分的开源库，专为可微编程设计，也是机器学习框架 Flux 的新一代自动微分后端。它采用“源到源”（source-to-source）技术，能直接在 Julia 编译器层面自动生成函数的梯度代码，就像开发者手动编写一样高效。这解决了传统自动微分难以兼顾灵活性与性能的问题，尤其适合需要复杂控制流、递归、闭包或自定义数据结构的场景。\n\nZygote.jl 主要面向使用 Julia 进行科学计算、机器学习或优化算法研究的开发者和研究人员。它支持对函数参数甚至隐式使用的全局变量（如神经网络权重）进行求导，并兼容 ChainRules.jl 生态，便于用户自定义梯度规则。虽然目前不支持变量突变和异常处理，但它充分利用了 Julia 的动态特性，在保持代码简洁的同时提供强大的微分能力。推荐在 Julia 1.8 或更高版本中使用以获得最佳体验。","\u003Cp align=\"center\">\n  \u003Cimg width=\"400px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFluxML_Zygote.jl_readme_cc25e8c05146.png\"\u002F>\n  \u003Cimg width=\"400px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFluxML_Zygote.jl_readme_339b223e7ce9.png\"\u002F>\n\u003C\u002Fp>\n\n\u003C!-- [![Build Status](https:\u002F\u002Ftravis-ci.org\u002FFluxML\u002FZygote.jl.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002FFluxML\u002FZygote.jl) -->\n[![CI Testing](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Factions)\n[![Coverage](https:\u002F\u002Fcodecov.io\u002Fgh\u002FFluxML\u002FZygote.jl\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FFluxML\u002FZygote.jl) \n[![Dev Docs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-dev-blue.svg)](https:\u002F\u002Ffluxml.ai\u002FZygote.jl\u002Fdev)\n\n`] add Zygote`\n\nZygote provides source-to-source automatic differentiation (AD) in Julia, and is the next-gen AD system for the [Flux](https:\u002F\u002Fgithub.com\u002FFluxML\u002FFlux.jl) differentiable programming framework. For more details and benchmarks of Zygote's technique, see [our paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1810.07951). You may want to check out Flux for more interesting examples of Zygote usage; the documentation here focuses on internals and advanced AD usage.\n\nZygote supports Julia 1.6 onwards, but we highly recommend using Julia 1.8 or later.\n\n```julia\njulia> using Zygote\n\njulia> f(x) = 5x + 3\n\njulia> f(10), f'(10)\n(53, 5.0)\n\njulia> @code_llvm f'(10)\ndefine i64 @\"julia_#625_38792\"(i64) {\ntop:\n  ret i64 5\n}\n```\n\n\"Source-to-source\" means that Zygote hooks into Julia's compiler, and generates the backwards pass for you – as if you had written it by hand.\n\nZygote supports the flexibility and dynamism of the Julia language, including control flow, recursion, closures, structs, dictionaries, and more.\nMutation and exception handling are currently not supported.\n\n```julia\njulia> fs = Dict(\"sin\" => sin, \"cos\" => cos, \"tan\" => tan);\n\njulia> gradient(x -> fs[readline()](x), 1)\nsin\n0.5403023058681398\n```\n\nZygote benefits from using the [ChainRules.jl](https:\u002F\u002Fgithub.com\u002FJuliaDiff\u002FChainRules.jl) ruleset.\nCustom gradients can be defined by extending the [ChainRulesCore.jl](https:\u002F\u002Fgithub.com\u002FJuliaDiff\u002FChainRulesCore.jl)'s `rrule`:\n\n```julia\njulia> using ChainRulesCore\n\njulia> add(a, b) = a + b\n\njulia> function ChainRulesCore.rrule(::typeof(add), a, b)\n           add_pb(dy) = (NoTangent(), dy, dy)\n           return add(a, b), add_pb\n       end\n```\n\nTo support large machine learning models with many parameters, Zygote can differentiate implicitly-used parameters, as opposed to just function arguments.\n\n```julia\njulia> W, b = rand(2, 3), rand(2);\n\njulia> predict(x) = W*x .+ b;\n\njulia> g = gradient(Params([W, b])) do\n         sum(predict([1,2,3]))\n       end\nGrads(...)\n\njulia> g[W], g[b]\n([1.0 2.0 3.0; 1.0 2.0 3.0], [1.0, 1.0])\n```\n","\u003Cp align=\"center\">\n  \u003Cimg width=\"400px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFluxML_Zygote.jl_readme_cc25e8c05146.png\"\u002F>\n  \u003Cimg width=\"400px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFluxML_Zygote.jl_readme_339b223e7ce9.png\"\u002F>\n\u003C\u002Fp>\n\n\u003C!-- [![Build Status](https:\u002F\u002Ftravis-ci.org\u002FFluxML\u002FZygote.jl.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002FFluxML\u002FZygote.jl) -->\n[![CI Testing](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Factions)\n[![Coverage](https:\u002F\u002Fcodecov.io\u002Fgh\u002FFluxML\u002FZygote.jl\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FFluxML\u002FZygote.jl) \n[![Dev Docs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-dev-blue.svg)](https:\u002F\u002Ffluxml.ai\u002FZygote.jl\u002Fdev)\n\n`] add Zygote`\n\nZygote 在 Julia 中提供源到源（source-to-source）自动微分（Automatic Differentiation, AD），是 [Flux](https:\u002F\u002Fgithub.com\u002FFluxML\u002FFlux.jl) 可微分编程框架的下一代自动微分系统。有关 Zygote 技术的更多细节和基准测试，请参阅[我们的论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1810.07951)。你可能还想查看 Flux，以获取更多有趣的 Zygote 使用示例；本文档主要关注内部机制和高级自动微分用法。\n\nZygote 支持 Julia 1.6 及更高版本，但我们强烈推荐使用 Julia 1.8 或更新版本。\n\n```julia\njulia> using Zygote\n\njulia> f(x) = 5x + 3\n\njulia> f(10), f'(10)\n(53, 5.0)\n\njulia> @code_llvm f'(10)\ndefine i64 @\"julia_#625_38792\"(i64) {\ntop:\n  ret i64 5\n}\n```\n\n“源到源”意味着 Zygote 会接入 Julia 的编译器，并为你生成反向传播过程——就像你自己手动编写的一样。\n\nZygote 支持 Julia 语言的灵活性和动态性，包括控制流、递归、闭包、结构体（structs）、字典（dictionaries）等。\n目前尚不支持可变状态（mutation）和异常处理（exception handling）。\n\n```julia\njulia> fs = Dict(\"sin\" => sin, \"cos\" => cos, \"tan\" => tan);\n\njulia> gradient(x -> fs[readline()](x), 1)\nsin\n0.5403023058681398\n```\n\nZygote 受益于使用 [ChainRules.jl](https:\u002F\u002Fgithub.com\u002FJuliaDiff\u002FChainRules.jl) 的规则集。\n自定义梯度可以通过扩展 [ChainRulesCore.jl](https:\u002F\u002Fgithub.com\u002FJuliaDiff\u002FChainRulesCore.jl) 的 `rrule` 来定义：\n\n```julia\njulia> using ChainRulesCore\n\njulia> add(a, b) = a + b\n\njulia> function ChainRulesCore.rrule(::typeof(add), a, b)\n           add_pb(dy) = (NoTangent(), dy, dy)\n           return add(a, b), add_pb\n       end\n```\n\n为了支持具有大量参数的大规模机器学习模型，Zygote 能够对隐式使用的参数进行微分，而不仅限于函数参数。\n\n```julia\njulia> W, b = rand(2, 3), rand(2);\n\njulia> predict(x) = W*x .+ b;\n\njulia> g = gradient(Params([W, b])) do\n         sum(predict([1,2,3]))\n       end\nGrads(...)\n\njulia> g[W], g[b]\n([1.0 2.0 3.0; 1.0 2.0 3.0], [1.0, 1.0])\n```","# Zygote.jl 快速上手指南\n\n## 环境准备\n\n- **Julia 版本**：支持 Julia 1.6 及以上，**强烈推荐使用 Julia 1.8 或更高版本**\n- **操作系统**：Windows \u002F macOS \u002F Linux 均可\n- **前置依赖**：无需额外安装其他包（Zygote 会自动处理依赖）\n\n> 💡 提示：国内用户建议配置 [清华镜像源](https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fhelp\u002Fjulia\u002F) 或 [中科大镜像源](https:\u002F\u002Fmirrors.ustc.edu.cn\u002Fhelp\u002Fjulia.html) 加速包下载。\n\n## 安装步骤\n\n在 Julia REPL 中执行以下命令：\n\n```julia\n] add Zygote\n```\n\n或在脚本中使用：\n\n```julia\nusing Pkg\nPkg.add(\"Zygote\")\n```\n\n## 基本使用\n\n### 1. 自动求导（函数参数）\n\n```julia\nusing Zygote\n\nf(x) = 5x + 3\n\n# 计算函数值和导数值\nf(10), f'(10)\n# 输出: (53, 5.0)\n```\n\n### 2. 使用 `gradient` 计算梯度\n\n```julia\nusing Zygote\n\n# 对多变量函数求梯度\ngradient((x, y) -> x^2 + y^2, 2, 3)\n# 输出: (4.0, 6.0)\n```\n\n### 3. 支持动态控制流（如字典、条件等）\n\n```julia\nfs = Dict(\"sin\" => sin, \"cos\" => cos, \"tan\" => tan)\n\n# 运行时读取函数名并求导（需手动输入如 \"sin\"）\ngradient(x -> fs[readline()](x), 1)\n```\n\n> ⚠️ 注意：Zygote 目前**不支持**数组原地修改（mutation）和异常处理（exception handling）。","某科研团队正在用 Julia 开发一个基于物理信息的神经网络（PINN），用于求解复杂偏微分方程，模型中包含自定义控制流和动态结构。\n\n### 没有 Zygote.jl 时\n- 必须手动推导并编码反向传播逻辑，尤其在包含 if 分支或循环的损失函数中极易出错。\n- 对于隐式依赖的模型参数（如全局权重矩阵 W 和偏置 b），难以统一计算梯度，需重构代码以显式传参。\n- 自定义算子（如特殊激活函数）缺乏自动微分支持，只能用数值微分近似，精度低且速度慢。\n- 调试梯度错误耗时极长，因为无法直观验证导数是否正确。\n- 与 Julia 原生数据结构（如 Dict、NamedTuple）结合使用时，传统 AD 工具常报错或不支持。\n\n### 使用 Zygote.jl 后\n- 直接对含控制流的原生 Julia 函数调用 `gradient`，Zygote 自动生成高效、正确的反向代码。\n- 利用 `Params` 机制，无需修改函数签名即可对隐式使用的参数（如 W、b）自动求导。\n- 通过 ChainRulesCore 定义 `rrule`，轻松为自定义函数提供解析梯度，兼顾性能与精度。\n- 可结合 `@code_llvm` 等工具检查生成的导数代码，快速定位问题。\n- 原生支持字典、闭包等动态结构，例如根据用户输入选择不同物理算子并自动微分。\n\nZygote.jl 让研究人员能像写普通 Julia 代码一样构建可微程序，无需为自动微分牺牲表达力或正确性。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFluxML_Zygote.jl_cc25e8c0.png","FluxML","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FFluxML_f11cb376.png","The Elegant Machine Learning Stack",null,"https:\u002F\u002Ffluxml.ai","https:\u002F\u002Fgithub.com\u002FFluxML",[82],{"name":83,"color":84,"percentage":85},"Julia","#a270ba",100,1562,220,"2026-03-31T22:11:22","NOASSERTION",1,"Linux, macOS, Windows","未说明",{"notes":94,"python":92,"dependencies":95},"推荐使用 Julia 1.8 或更高版本；不支持 mutation 和 exception handling；支持控制流、递归、闭包、结构体、字典等 Julia 动态特性；可通过 ChainRulesCore.jl 自定义梯度规则。",[96,97,98],"Julia 1.6+","ChainRulesCore.jl","ChainRules.jl",[13],[101,102,103,104,105,106],"julia","julia-compiler","control-flow","gradient","machine-learning","automatic-differentiation","2026-03-27T02:49:30.150509","2026-04-06T08:45:30.033304",[110,115,119,123,128,133],{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},872,"Zygote 对复数自动微分的支持为何返回 NamedTuple 而非复数？","Zygote 使用 Wirtinger 导数（将复数视为两个实变量）进行自动微分，因此梯度以 NamedTuple 形式返回（如 (re = ..., im = ...)）。这是为了与 Julia 的 AD 框架保持一致，并明确区分实部和虚部的导数。详细说明请参阅官方文档：http:\u002F\u002Ffluxml.ai\u002FZygote.jl\u002Fdev\u002Fcomplex\u002F","https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fissues\u002F29",{"id":116,"question_zh":117,"answer_zh":118,"source_url":114},873,"为什么对复数函数 log(x) |> abs 使用 gradient 会报错？","虽然 log 是全纯函数且 abs 在 Zygote 中有定义，但组合函数的反向传播可能缺少必要的自定义 rrule 或存在非全纯操作。建议检查中间表达式的可微性，并参考 Zygote 的复数 AD 文档（http:\u002F\u002Ffluxml.ai\u002FZygote.jl\u002Fdev\u002Fcomplex\u002F）了解支持的函数和限制。",{"id":120,"question_zh":121,"answer_zh":122,"source_url":114},874,"Zygote 中复数梯度的约定是否与其他框架一致？","Zygote 采用的是共轭梯度约定（即梯度对应于 ∂̄ 导数），这与某些物理或机器学习文献中的惯例不同。这种设计确保了与 Julia 生态中其他 AD 工具的一致性。若需标准全纯导数（如 gradient(log, x) = 1\u002Fx），需手动调整或使用特定规则。详见官方复数 AD 文档：http:\u002F\u002Ffluxml.ai\u002FZygote.jl\u002Fdev\u002Fcomplex\u002F",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},875,"在 CUDA 上使用 Zygote 的 mean() 函数时出现非法内存访问错误（code 700）怎么办？","该问题是由于 CUDA.jl 旧版本与 Zygote 在 GPU 上对 mean() 的反向传播实现不兼容所致。解决方案是升级到 CUDA.jl v5.1.2 或更高版本（无需强制更新 Adapt.jl）。升级后问题应已修复，用户反馈在 Julia v1.10.1 + CUDA.jl v5.2.0 环境下模型可正常训练。","https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fissues\u002F1473",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},876,"如何在 Zygote 中构造数组而不触发“不支持数组突变”错误？","避免在可微函数中使用会突变数组的操作（如 setindex!）。推荐方法包括：(1) 使用不可变构造方式（如 hcat、vcat）；(2) 对不参与梯度计算的部分使用 @nograd；(3) 使用 Zygote.Buffer 进行临时可变操作（需在 pullback 中正确处理）。对于复杂模式，可考虑重写为无突变形式或自定义 adjoint。","https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fissues\u002F377",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},877,"为自定义 AbstractMatrix 子类型定义 rrule 后，gradient 报错“type Nothing has no field method”如何解决？","该错误通常是因为 rrule 返回的 pullback 函数签名不正确或未正确处理 Tangent 类型。应确保 rrule 返回的 pullback 接受一个 Δ 并返回与输入参数数量一致的梯度元组，且对不需要梯度的位置使用 NoTangent()。此外，需确认 ChainRulesCore 版本兼容，并参考 Zygote 的 chainrules 集成文档调试匹配签名问题。","https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fissues\u002F1146",[139,144,149,154,159,164,169,174,179,184,189,194,199,204,209,214,219,224,229,234],{"id":140,"version":141,"summary_zh":142,"released_at":143},110143,"v0.7.10","## Zygote v0.7.10\n\n[Diff since v0.7.9](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.9...v0.7.10)\n\n\n**Merged pull requests:**\n- Add symmteric `accum` method for empty gradients (#1577) (@DhairyaLGandhi)","2025-06-14T17:18:50",{"id":145,"version":146,"summary_zh":147,"released_at":148},110144,"v0.7.9","## Zygote v0.7.9\n\n[Diff since v0.7.8](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.8...v0.7.9)\n\n\n**Merged pull requests:**\n- chore: handle `accum` when no grads are present (#1576) (@DhairyaLGandhi)","2025-06-10T07:50:37",{"id":150,"version":151,"summary_zh":152,"released_at":153},110145,"v0.7.8","## Zygote v0.7.8\n\n[Diff since v0.7.7](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.7...v0.7.8)\n\n\n**Merged pull requests:**\n- Backport `typesof` fix for 0.6 (#1571) (@serenity4)\n- Accumulate mutable structs with `Ref` (#1574) (@DhairyaLGandhi)\n\n**Closed issues:**\n- Pullback of `exponent` fails, `j` not defined in Zygote (#1573)","2025-06-05T07:49:18",{"id":155,"version":156,"summary_zh":157,"released_at":158},110146,"v0.6.77","## Zygote v0.6.77\n\n[Diff since v0.6.76](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.76...v0.6.77)\n\n\nThis release has been identified as a backport.\nAutomated changelogs for backports tend to be wildly incorrect.\nTherefore, the list of issues and pull requests is hidden.\n\u003C!--\n**Merged pull requests:**\n- Import `typesof` from Base instead of InteractiveUtils (#1569) (@serenity4)\n- Backport `typesof` fix for 0.6 (#1571) (@serenity4)\n\n\n-->","2025-05-02T13:46:21",{"id":160,"version":161,"summary_zh":162,"released_at":163},110147,"v0.7.7","## Zygote v0.7.7\n\n[Diff since v0.7.6](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.6...v0.7.7)\n\n\n**Merged pull requests:**\n- support ForwardDiff@1.0 for v0.6 (#1566) (@oscardssmith)\n- Import `typesof` from Base instead of InteractiveUtils (#1569) (@serenity4)","2025-04-30T15:52:52",{"id":165,"version":166,"summary_zh":167,"released_at":168},110148,"v0.6.76","## Zygote v0.6.76\n\n[Diff since v0.6.75](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.75...v0.6.76)\n\n\nThis release has been identified as a backport.\nAutomated changelogs for backports tend to be wildly incorrect.\nTherefore, the list of issues and pull requests is hidden.\n\u003C!--\n**Merged pull requests:**\n- Utilize ChainRulesCore thunks (#966) (@oschulz)\n- Remove redundant sum() rules (#1453) (@ToucheSir)\n- Improve the limitations page (#1548) (@mcabbott)\n- Drop support for Julia 1.6 (#1549) (@mcabbott)\n- Unthunk tangents (if any) before returning gradient (#1551) (@pxl-th)\n- Improve catch block identification (#1552) (@Pangoraw)\n- Remove Molly.jl from Downstream.yml CI (#1554) (@ToucheSir)\n- Don't create nested thunks when accumulating (#1555) (@ToucheSir)\n- Distribute tests across workers (#1559) (@pxl-th)\n- Cleanup & remove some deps (#1560) (@pxl-th)\n- CompatHelper: bump compat for ForwardDiff to 1, (keep existing compat) (#1563) (@github-actions[bot])\n- chore: add unthunk_tangent rule for Ref (#1564) (@DhairyaLGandhi)\n- Remove DynamicPPL integration test (#1565) (@penelopeysm)\n- support ForwardDiff@1.0 for v0.6 (#1566) (@oscardssmith)\n\n**Closed issues:**\n- Seems to be #265ing (#22)\n- Use ReTest for parallel testing (#1289)\n- nested AD on CUDA array (#1450)\n- try\u002Fcatch error message regression (#1546)\n- How to match performance of Zygote with Tracker.jl? With Issues in Tracker.jl itself. (#1550)\n- Zygote is not compiling (#1553)\n- sum with a function where that function returns a tuple (#1556)\n- Wrong gradient return for a function that is a double `getindex` of jagged arrays (#1557)\n\n-->","2025-04-01T04:42:34",{"id":170,"version":171,"summary_zh":172,"released_at":173},110149,"v0.7.6","## Zygote v0.7.6\n\n[Diff since v0.7.5](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.5...v0.7.6)\n\n\n**Merged pull requests:**\n- chore: add unthunk_tangent rule for Ref (#1564) (@DhairyaLGandhi)\n- Remove DynamicPPL integration test (#1565) (@penelopeysm)","2025-03-31T13:29:55",{"id":175,"version":176,"summary_zh":177,"released_at":178},110150,"v0.7.5","## Zygote v0.7.5\n\n[Diff since v0.7.4](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.4...v0.7.5)\n\n\n**Merged pull requests:**\n- Drop support for Julia 1.6 (#1549) (@mcabbott)\n- Distribute tests across workers (#1559) (@pxl-th)\n- Cleanup & remove some deps (#1560) (@pxl-th)\n- CompatHelper: bump compat for ForwardDiff to 1, (keep existing compat) (#1563) (@github-actions[bot])\n\n**Closed issues:**\n- Seems to be #265ing (#22)\n- Use ReTest for parallel testing (#1289)\n- sum with a function where that function returns a tuple (#1556)\n- Wrong gradient return for a function that is a double `getindex` of jagged arrays (#1557)","2025-03-26T20:03:25",{"id":180,"version":181,"summary_zh":182,"released_at":183},110151,"v0.7.4","## Zygote v0.7.4\n\n[Diff since v0.7.3](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.3...v0.7.4)\n\n\n**Merged pull requests:**\n- Remove Molly.jl from Downstream.yml CI (#1554) (@ToucheSir)\n- Don't create nested thunks when accumulating (#1555) (@ToucheSir)\n\n**Closed issues:**\n- nested AD on CUDA array (#1450)","2025-01-31T01:12:00",{"id":185,"version":186,"summary_zh":187,"released_at":188},110152,"v0.7.3","## Zygote v0.7.3\n\n[Diff since v0.7.2](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.2...v0.7.3)\n\n\n**Merged pull requests:**\n- Unthunk tangents (if any) before returning gradient (#1551) (@pxl-th)\n\n**Closed issues:**\n- Zygote is not compiling (#1553)","2025-01-21T07:16:54",{"id":190,"version":191,"summary_zh":192,"released_at":193},110153,"v0.7.2","## Zygote v0.7.2\n\n[Diff since v0.7.1](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.1...v0.7.2)\n\n\n**Merged pull requests:**\n- Improve catch block identification (#1552) (@Pangoraw)\n\n**Closed issues:**\n- try\u002Fcatch error message regression (#1546)\n- How to match performance of Zygote with Tracker.jl? With Issues in Tracker.jl itself. (#1550)","2025-01-18T22:34:23",{"id":195,"version":196,"summary_zh":197,"released_at":198},110154,"v0.7.1","## Zygote v0.7.1\n\n[Diff since v0.7.0](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.7.0...v0.7.1)\n\n\n**Merged pull requests:**\n- Remove redundant sum() rules (#1453) (@ToucheSir)\n- Improve the limitations page (#1548) (@mcabbott)","2025-01-05T00:06:46",{"id":200,"version":201,"summary_zh":202,"released_at":203},110155,"v0.7.0","## Zygote v0.7.0\n\n[Diff since v0.6.75](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.75...v0.7.0)\n\n**Breaking changes**:\r\n\r\n- Now Zygote doesn't always unthunk ChainRulesCore's thunks, saving computation and memory in some situations. This may break some ChainRules' rules that are not correctly written, but no changes are usually required. (#966)\n\n**Merged pull requests:**\n- Utilize ChainRulesCore thunks (#966) (@oschulz)","2025-01-04T07:37:09",{"id":205,"version":206,"summary_zh":207,"released_at":208},110156,"v0.6.75","## Zygote v0.6.75\n\n[Diff since v0.6.74](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.74...v0.6.75)\n\n\n**Merged pull requests:**\n- CompatHelper: bump compat for Colors in [weakdeps] to 0.13, (keep existing compat) (#1536) (@github-actions[bot])\n- Eager parameter updating (#1541) (@murrellb)\n- set CollapsedDocStrings=true (#1543) (@CarloLucibello)\n- mark some tests as broken (#1545) (@CarloLucibello)\n\n**Closed issues:**\n- Support try\u002Fcatch by assuming try branch  (#1516)","2025-01-01T09:03:50",{"id":210,"version":211,"summary_zh":212,"released_at":213},110157,"v0.6.74","## Zygote v0.6.74\n\n[Diff since v0.6.73](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.73...v0.6.74)\n\n\n**Merged pull requests:**\n- fix precompilation on 1.12 (#1542) (@simeonschaub)\n\n**Closed issues:**\n- UnitRange calculations change types when using Zygote (#557)\n- Fails to precompile on PkgEval run (#1539)\n- An unknown error occurs raised by Zygote.jl when using eachslice and NamedTuple (#1540)","2024-12-27T21:25:30",{"id":215,"version":216,"summary_zh":217,"released_at":218},110158,"v0.6.73","## Zygote v0.6.73\n\n[Diff since v0.6.72](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.72...v0.6.73)\n\n\n**Merged pull requests:**\n- CompatHelper: bump compat for GPUArraysCore to 0.2, (keep existing compat) (#1534) (@github-actions[bot])\n- CompatHelper: bump compat for GPUArrays to 11, (keep existing compat) (#1535) (@github-actions[bot])\n\n**Closed issues:**\n- Why nested gradient is so slow? (#1239)\n- Unsupported operation when using CUDA (#1532)\n- Incorrect `nothing` gradient (#1538)","2024-11-10T19:18:47",{"id":220,"version":221,"summary_zh":222,"released_at":223},110159,"v0.6.72","## Zygote v0.6.72\n\n[Diff since v0.6.71](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.71...v0.6.72)\n\n\n**Merged pull requests:**\n- Add rule for `push!(::IdSet)` (#1494) (@ToucheSir)","2024-10-13T18:54:45",{"id":225,"version":226,"summary_zh":227,"released_at":228},110160,"v0.6.71","## Zygote v0.6.71\n\n[Diff since v0.6.70](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.70...v0.6.71)\n\n\n**Merged pull requests:**\n- Fix dead link (#1518) (@NAThompson)\n- Prefer numeric zero over ZeroTangent for numeric arrays (#1524) (@BioTurboNick)\n- Support `enumerate` in conditional generators\u002Fcomprehensions (#1525) (@BioTurboNick)\n\n**Closed issues:**\n- \"Zygote.Buffer copyto!\" error when using \"CartesianIndex\" (#1364)\n- Default presentation of gradients confusing? (#1519)\n- BitVector failure (#1523)","2024-09-25T22:18:08",{"id":230,"version":231,"summary_zh":232,"released_at":233},110161,"v0.6.70","## Zygote v0.6.70\n\n[Diff since v0.6.69](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.69...v0.6.70)\n\n\n**Merged pull requests:**\n- Adjust to upcoming julia#54341 (#1511) (@Keno)\n\n**Closed issues:**\n- error in summation of product iterator (#1490)\n- OOM when computing the gradient in an embarrassingly parallel problem (#1504)\n- Pullback over jacobian (#1505)","2024-05-09T16:12:18",{"id":235,"version":236,"summary_zh":237,"released_at":238},110162,"v0.6.69","## Zygote v0.6.69\n\n[Diff since v0.6.68](https:\u002F\u002Fgithub.com\u002FFluxML\u002FZygote.jl\u002Fcompare\u002Fv0.6.68...v0.6.69)\n\n## Important Changes\r\n\r\n- `gradient` is now guaranteed to return a tuple with one gradient per argument, even if the gradients are `nothing`.\r\n- Tuples of `nothing` returned from a now will now be consistently collapsed into a single `nothing`.\n\n**Merged pull requests:**\n- Handle `Expr(:boundscheck)` (#1462) (@ToucheSir)\n- Swap PyCall to PythonCall (#1485) (@ToucheSir)\n- Improve adjoint for product and zip (#1489) (@lxvm)\n- Preserve 0d arrays in `Zygote.accum` (#1491) (@lxvm)\n- Remove `@adjoint`s for `sort` and `filter` (#1493) (@lkdvos)\n- Un-collapse nothings in `gradient` (#1495) (@ToucheSir)\n\n**Closed issues:**\n- Adjoint of Adjoint with NamedTuples (#1438)\n- Pullback on mean() gives illegal memory access code 700 (#1473)\n- `sort(x; rev=true)` is not supported (#1492)\n- Incorrect gradients for `plan_rfft(x) * x` (#1496)","2024-01-19T22:17:34"]