[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-pyro-ppl--pyro":3,"tool-pyro-ppl--pyro":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 真正成长为懂上",155373,2,"2026-04-14T11:34:08",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[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":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":105,"forks":106,"last_commit_at":107,"license":108,"difficulty_score":109,"env_os":110,"env_gpu":111,"env_ram":110,"env_deps":112,"category_tags":116,"github_topics":117,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":126,"updated_at":127,"faqs":128,"releases":158},7479,"pyro-ppl\u002Fpyro","pyro","Deep universal probabilistic programming with Python and PyTorch","Pyro 是一个基于 PyTorch 构建的灵活、可扩展的深度概率编程库。它旨在帮助开发者和研究人员轻松定义复杂的概率模型，并利用深度学习技术进行高效推断，从而解决传统统计方法在处理大规模数据或高度非线性关系时面临的计算瓶颈与建模灵活性不足的问题。\n\nPyro 特别适合机器学习工程师、数据科学家以及从事贝叶斯统计研究的学者使用。无论是需要快速验证想法的研究人员，还是致力于构建生产级 AI 系统的开发者，都能从中受益。其核心优势在于四大设计理念：通用性（能表达任何可计算的分布）、可扩展性（在大数据集上表现优异且开销极低）、极简主义（核心代码精炼且易于维护）以及高度灵活性（既提供自动化推理的高层抽象，也允许专家底层定制）。\n\n作为最初由 Uber AI 开发、现由 Linux 基金会托管的开源项目，Pyro 完美结合了概率编程的严谨性与深度学习的强大算力，让用户在享受自动化便利的同时，依然保有对模型细节的完全控制权。","\u003C!--\nCopyright Contributors to the Pyro project.\n\nSPDX-License-Identifier: Apache-2.0\n-->\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"http:\u002F\u002Fpyro.ai\"> \u003Cimg width=\"220px\" height=\"220px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpyro-ppl_pyro_readme_62565edd1333.png\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n-----------------------------------------\n\n[![Build Status](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Factions)\n[![Coverage Status](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fpyro-ppl\u002Fpyro\u002Fbadge.svg?branch=dev)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fpyro-ppl\u002Fpyro?branch=dev)\n[![Latest Version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyro-ppl.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpyro-ppl)\n[![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpyro-ppl_pyro_readme_13d664e1afd7.png)](http:\u002F\u002Fpyro-ppl.readthedocs.io\u002Fen\u002Fstable\u002F?badge=dev)\n[![CII Best Practices](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpyro-ppl_pyro_readme_50ccde67b228.png)](https:\u002F\u002Fbestpractices.coreinfrastructure.org\u002Fprojects\u002F3056)\n\n[Getting Started](http:\u002F\u002Fpyro.ai\u002Fexamples) |\n[Documentation](http:\u002F\u002Fdocs.pyro.ai\u002F) |\n[Community](http:\u002F\u002Fforum.pyro.ai\u002F) |\n[Contributing](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md)\n\nPyro is a flexible, scalable deep probabilistic programming library built on PyTorch.  Notably, it was designed with these principles in mind:\n\n- **Universal**: Pyro is a universal PPL - it can represent any computable probability distribution.\n- **Scalable**: Pyro scales to large data sets with little overhead compared to hand-written code.\n- **Minimal**: Pyro is agile and maintainable. It is implemented with a small core of powerful, composable abstractions.\n- **Flexible**: Pyro aims for automation when you want it, control when you need it. This is accomplished through high-level abstractions to express generative and inference models, while allowing experts easy-access to customize inference.\n\nPyro was originally developed at Uber AI and is now actively maintained by community contributors, including a dedicated team at the [Broad Institute](https:\u002F\u002Fwww.broadinstitute.org\u002F).\nIn 2019, Pyro [became](https:\u002F\u002Fwww.linuxfoundation.org\u002Fpress-release\u002F2019\u002F02\u002Fpyro-probabilistic-programming-language-becomes-newest-lf-deep-learning-project\u002F) a project of the Linux Foundation, a neutral space for collaboration on open source software, open standards, open data, and open hardware.\n\nFor more information about the high level motivation for Pyro, check out our [launch blog post](http:\u002F\u002Feng.uber.com\u002Fpyro).\nFor additional blog posts, check out work on [experimental design](https:\u002F\u002Feng.uber.com\u002Foed-pyro-release\u002F) and\n[time-to-event modeling](https:\u002F\u002Feng.uber.com\u002Fmodeling-censored-time-to-event-data-using-pyro\u002F) in Pyro.\n\n## Installing\n\n### Installing a stable Pyro release\n\n**Install using pip:**\n```sh\npip install pyro-ppl\n```\n\n**Install from source:**\n```sh\ngit clone git@github.com:pyro-ppl\u002Fpyro.git\ncd pyro\ngit checkout master  # master is pinned to the latest release\npip install .\n```\n\n**Install with extra packages:**\n\nTo install the dependencies required to run the probabilistic models included in the `examples`\u002F`tutorials` directories, please use the following command:\n```sh\npip install pyro-ppl[extras] \n```\nMake sure that the models come from the same release version of the [Pyro source code](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Freleases) as you have installed.\n\n### Installing Pyro dev branch\n\nFor recent features you can install Pyro from source.\n\n**Install Pyro using pip:**\n\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro.git\n```\nor, with the `extras` dependency to run the probabilistic models included in the `examples`\u002F`tutorials` directories:\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro.git#egg=project[extras]\n```\n\n**Install Pyro from source:**\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\ncd pyro\npip install .  # pip install .[extras] for running models in examples\u002Ftutorials\n```\n\n## Running Pyro from a Docker Container\n\nRefer to the instructions [here](docker\u002FREADME.md).\n\n## Citation\nIf you use Pyro, please consider citing:\n```\n@article{bingham2019pyro,\n  author    = {Eli Bingham and\n               Jonathan P. Chen and\n               Martin Jankowiak and\n               Fritz Obermeyer and\n               Neeraj Pradhan and\n               Theofanis Karaletsos and\n               Rohit Singh and\n               Paul A. Szerlip and\n               Paul Horsfall and\n               Noah D. Goodman},\n  title     = {Pyro: Deep Universal Probabilistic Programming},\n  journal   = {J. Mach. Learn. Res.},\n  volume    = {20},\n  pages     = {28:1--28:6},\n  year      = {2019},\n  url       = {http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv20\u002F18-403.html}\n}\n```\n","\u003C!--\n版权所有者为 Pyro 项目贡献者。\nSPDX 许可证标识符：Apache-2.0\n-->\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"http:\u002F\u002Fpyro.ai\"> \u003Cimg width=\"220px\" height=\"220px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpyro-ppl_pyro_readme_62565edd1333.png\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n-----------------------------------------\n\n[![构建状态](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Factions)\n[![覆盖率状态](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fpyro-ppl\u002Fpyro\u002Fbadge.svg?branch=dev)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fpyro-ppl\u002Fpyro?branch=dev)\n[![最新版本](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyro-ppl.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpyro-ppl)\n[![文档状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpyro-ppl_pyro_readme_13d664e1afd7.png)](http:\u002F\u002Fpyro-ppl.readthedocs.io\u002Fen\u002Fstable\u002F?badge=dev)\n[![CII 最佳实践](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpyro-ppl_pyro_readme_50ccde67b228.png)](https:\u002F\u002Fbestpractices.coreinfrastructure.org\u002Fprojects\u002F3056)\n\n[入门指南](http:\u002F\u002Fpyro.ai\u002Fexamples) |\n[文档](http:\u002F\u002Fdocs.pyro.ai\u002F) |\n[社区](http:\u002F\u002Fforum.pyro.ai\u002F) |\n[贡献说明](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md)\n\nPyro 是一个基于 PyTorch 构建的灵活、可扩展的深度概率编程库。它在设计时特别注重以下原则：\n\n- **通用性**：Pyro 是一种通用的概率编程语言，能够表示任何可计算的概率分布。\n- **可扩展性**：与手写代码相比，Pyro 在处理大规模数据集时开销极小，具有良好的可扩展性。\n- **精简性**：Pyro 简洁高效且易于维护，其核心由少量强大、可组合的抽象组成。\n- **灵活性**：Pyro 在需要自动化时提供自动化支持，在需要精细控制时则允许用户进行自定义。它通过高级抽象来表达生成模型和推理模型，同时为专家提供了便捷的方式来定制推理过程。\n\nPyro 最初由 Uber AI 团队开发，目前由社区贡献者积极维护，其中包括来自 [布罗德研究所](https:\u002F\u002Fwww.broadinstitute.org\u002F) 的专门团队。2019 年，Pyro 成为 Linux 基金会的项目之一，该基金会在开源软件、开放标准、开放数据和开放硬件等领域提供中立的合作平台。\n\n如需了解更多关于 Pyro 的高层次动机，请参阅我们的 [发布博客文章](http:\u002F\u002Feng.uber.com\u002Fpyro)。此外，您还可以阅读有关 Pyro 中 [实验设计](https:\u002F\u002Feng.uber.com\u002Foed-pyro-release\u002F) 和 [生存分析建模](https:\u002F\u002Feng.uber.com\u002Fmodeling-censored-time-to-event-data-using-pyro\u002F) 的相关博文。\n\n## 安装\n\n### 安装稳定版 Pyro\n\n**使用 pip 安装：**\n```sh\npip install pyro-ppl\n```\n\n**从源码安装：**\n```sh\ngit clone git@github.com:pyro-ppl\u002Fpyro.git\ncd pyro\ngit checkout master  # master 分支固定为最新稳定版\npip install .\n```\n\n**安装包含额外依赖的版本：**\n\n若要安装运行 `examples`\u002F`tutorials` 目录中概率模型所需的依赖项，请使用以下命令：\n```sh\npip install pyro-ppl[extras] \n```\n请确保这些模型与您已安装的 [Pyro 源码](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Freleases) 属于同一版本。\n\n### 安装 Pyro 开发分支\n\n如果您希望体验最新的功能，可以从源码安装 Pyro。\n\n**使用 pip 安装：**\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro.git\n```\n或者，若要运行 `examples`\u002F`tutorials` 目录中的概率模型，可以使用带有 `extras` 依赖的安装命令：\n```sh\npip install git+https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro.git#egg=project[extras]\n```\n\n**从源码安装：**\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\ncd pyro\npip install .  # 若需运行 examples\u002Ftutorials 中的模型，则使用 pip install .[extras]\n```\n\n## 通过 Docker 容器运行 Pyro\n\n请参考 [此处](docker\u002FREADME.md) 的说明。\n\n## 引用\n\n如果您使用了 Pyro，请考虑引用以下文献：\n```\n@article{bingham2019pyro,\n  author    = {Eli Bingham and\n               Jonathan P. Chen and\n               Martin Jankowiak and\n               Fritz Obermeyer and\n               Neeraj Pradhan and\n               Theofanis Karaletsos and\n               Rohit Singh and\n               Paul A. Szerlip and\n               Paul Horsfall and\n               Noah D. Goodman},\n  title     = {Pyro: Deep Universal Probabilistic Programming},\n  journal   = {J. Mach. Learn. Res.},\n  volume    = {20},\n  pages     = {28:1--28:6},\n  year      = {2019},\n  url       = {http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv20\u002F18-403.html}\n}\n```","# Pyro 快速上手指南\n\nPyro 是一个基于 PyTorch 构建的灵活、可扩展的深度概率编程库。它旨在实现通用性（可表示任何可计算的概率分布）、可扩展性（适应大数据集）、极简主义（核心抽象强大且可组合）以及灵活性（在自动化与控制之间取得平衡）。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：建议 Python 3.8 或更高版本\n*   **前置依赖**：\n    *   **PyTorch**：Pyro 强依赖于 PyTorch。建议先安装与您的 CUDA 版本（如需 GPU 加速）匹配的 PyTorch。\n    *   **包管理工具**：`pip`\n\n> **提示**：国内开发者在安装 PyTorch 时，推荐使用清华或中科大镜像源以加速下载。\n\n## 安装步骤\n\n您可以选择安装稳定版或开发版。对于大多数用户，推荐安装稳定版。\n\n### 1. 安装稳定版（推荐）\n\n使用 `pip` 直接安装：\n\n```sh\npip install pyro-ppl\n```\n\n如果您计划运行官方 `examples` 或 `tutorials` 目录中的概率模型示例，需要安装额外依赖：\n\n```sh\npip install pyro-ppl[extras]\n```\n\n**国内加速安装**：\n使用清华大学开源软件镜像源进行安装：\n\n```sh\npip install pyro-ppl -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\npip install \"pyro-ppl[extras]\" -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 2. 从源码安装（可选）\n\n如果您需要最新的功能或参与贡献，可以从 GitHub 源码安装：\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro.git\ncd pyro\npip install .\n# 若需运行示例代码，请使用: pip install .[extras]\n```\n\n## 基本使用\n\nPyro 的核心在于结合深度学习与贝叶斯推断。以下是一个最简单的线性回归模型示例，展示了如何定义生成模型（`model`）和引导函数（`guide`），并执行随机变分推断（SVI）。\n\n```python\nimport torch\nimport pyro\nimport pyro.distributions as dist\nfrom pyro.infer import SVI, Trace_ELBO\n\n# 设置随机种子以保证结果可复现\npyro.set_rng_seed(1)\n# 清除之前的参数存储\npyro.clear_param_store()\n\n# 1. 定义生成模型 (Model)\n# 描述数据是如何生成的，包含先验分布和似然函数\ndef model(x, y=None):\n    # 定义权重 w 的先验分布：标准正态分布\n    w = pyro.sample(\"w\", dist.Normal(0., 1.))\n    # 定义偏置 b 的先验分布：标准正态分布\n    b = pyro.sample(\"b\", dist.Normal(0., 1.))\n    \n    # 计算预测均值\n    mean = w * x + b\n    \n    # 定义观测值的似然分布：均值为 mean，方差为 1 的正态分布\n    with pyro.plate(\"data\", len(x)):\n        pyro.sample(\"obs\", dist.Normal(mean, 1.), obs=y)\n\n# 2. 定义引导函数 (Guide)\n# 用于近似后验分布的可学习变分分布\ndef guide(x, y=None):\n    # 定义权重 w 的变分参数 (均值和标准差)\n    w_loc = pyro.param(\"w_loc\", torch.tensor(0.))\n    w_scale = pyro.param(\"w_scale\", torch.tensor(1.), constraint=dist.constraints.positive)\n    pyro.sample(\"w\", dist.Normal(w_loc, w_scale))\n    \n    # 定义偏置 b 的变分参数\n    b_loc = pyro.param(\"b_loc\", torch.tensor(0.))\n    b_scale = pyro.param(\"b_scale\", torch.tensor(1.), constraint=dist.constraints.positive)\n    pyro.sample(\"b\", dist.Normal(b_loc, b_scale))\n\n# 3. 准备一些虚拟数据\n# 真实关系假设为 y = 2x + 1 + noise\ntrue_w, true_b = 2.0, 1.0\nx_data = torch.randn(100)\ny_data = true_w * x_data + true_b + torch.randn(100) * 0.5\n\n# 4. 设置优化器和损失函数\noptimizer = pyro.optim.Adam({\"lr\": 0.01})\nsvi = SVI(model, guide, optimizer, loss=Trace_ELBO())\n\n# 5. 执行训练循环\nprint(\"开始训练...\")\nfor step in range(1000):\n    loss = svi.step(x_data, y_data)\n    if step % 100 == 0:\n        print(f\"Step {step} | Loss: {loss:.4f}\")\n\n# 6. 查看推断结果\nprint(\"\\n推断结果:\")\nprint(f\"w_loc (估计值): {pyro.param('w_loc').item():.4f} (真实值：{true_w})\")\nprint(f\"b_loc (估计值): {pyro.param('b_loc').item():.4f} (真实值：{true_b})\")\n```\n\n运行上述代码后，您将看到损失函数逐渐下降，且推断出的参数 `w_loc` 和 `b_loc` 会收敛到真实值附近。","某生物制药公司的数据科学团队正在利用患者临床试验数据，构建预测药物反应时间的模型，以优化个性化给药方案。\n\n### 没有 pyro 时\n- **不确定性量化困难**：传统深度学习框架（如纯 PyTorch）只能输出单一的点估计值，无法告知医生预测结果的置信区间，导致高风险决策缺乏依据。\n- **复杂分布建模受限**：面对临床数据中常见的截尾数据（如患者中途退出）和多模态分布，手动推导变分推断公式极其耗时且容易出错。\n- **代码复用性差**：每次尝试新的统计假设都需要重写大量底层推理代码，难以将领域知识（如药物代谢动力学规律）灵活嵌入模型结构中。\n- **扩展性瓶颈**：当数据量从几千例扩展到百万级电子病历记录时，自定义的贝叶斯推理脚本运行效率急剧下降，难以落地生产环境。\n\n### 使用 pyro 后\n- **原生概率编程支持**：pyro 基于 PyTorch 构建，能直接输出完整的概率分布，让团队轻松计算出药物起效时间的 95% 置信区间，显著提升决策安全性。\n- **通用且灵活的建模**：借助 pyro 的“通用性”特质，研究人员仅用少量代码即可定义复杂的生成模型，天然支持截尾数据和任意可计算的概率分布。\n- **自动化与可控性平衡**：利用 pyro 的高级抽象快速搭建基准模型，同时允许专家在需要时深入定制推断算法，完美融合了开发效率与科研灵活性。\n- **大规模数据无缝扩展**：依托 pyro 的随机变分推断能力，模型可直接利用 GPU 加速并在百万级数据集上高效训练，性能损失极小。\n\npyro 通过将深度学习的扩展性与贝叶斯推断的不确定性量化能力完美结合，让复杂的概率建模变得像编写普通 Python 脚本一样简单高效。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpyro-ppl_pyro_62565edd.png","pyro-ppl","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fpyro-ppl_e419f9ae.png","Pyro - Deep Universal Probabilistic Programming",null,"PyroAi","https:\u002F\u002Fpyro.ai","https:\u002F\u002Fgithub.com\u002Fpyro-ppl",[80,84,88,91,94,98,102],{"name":81,"color":82,"percentage":83},"Python","#3572A5",99.3,{"name":85,"color":86,"percentage":87},"Makefile","#427819",0.2,{"name":89,"color":90,"percentage":87},"C++","#f34b7d",{"name":92,"color":93,"percentage":87},"Shell","#89e051",{"name":95,"color":96,"percentage":97},"TeX","#3D6117",0.1,{"name":99,"color":100,"percentage":101},"Dockerfile","#384d54",0,{"name":103,"color":104,"percentage":101},"CSS","#663399",8994,1009,"2026-04-13T07:15:50","Apache-2.0",1,"未说明","未说明 (基于 PyTorch，通常支持 CUDA 加速，但 README 未指定具体型号或版本)",{"notes":113,"python":110,"dependencies":114},"Pyro 是构建在 PyTorch 之上的概率编程库。可以通过 pip 安装稳定版 (pyro-ppl) 或从源码安装开发版。若需运行示例和教程中的模型，建议安装额外依赖包 (pip install pyro-ppl[extras])。提供了 Docker 容器运行支持。",[115],"pytorch",[14],[118,115,119,120,121,122,123,124,125],"python","machine-learning","bayesian","probabilistic-programming","bayesian-inference","variational-inference","probabilistic-modeling","deep-learning","2026-03-27T02:49:30.150509","2026-04-15T03:22:27.940618",[129,134,139,144,149,154],{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},33551,"如何在 Pyro 中实现 Wishart、InverseWishart 或 LKJ 先验分布？","Pyro 已经通过 PR #1753 实现了这些先验分布。虽然 GPyTorch 中有相关实现，但直接混合使用 `TorchDistributionMixin` 可能会遇到缺少 `.sample` 方法的问题。建议直接查看 Pyro 仓库中合并的代码，或者参考 TensorFlow Probability 关于协方差估计的案例研究教程以了解底层实现思路。如果有关于统计函数的详细代码审查需求，可以在 Pyro 或 probtorch\u002Fpytorch 仓库中进行讨论。","https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fissues\u002F1692",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},33552,"为什么 Pyro 中的参数默认是全局共享命名空间的，这与 PyTorch 的作用域设计不同吗？","这是为了在模型、指南（guide）和数据可以任意不同的情况下，提供一个平衡点。虽然默认使用全局变量，但用户可以通过 `anon`（匿名站点）功能来实现更灵活的局部作用域控制，从而避免全局存储带来的限制。使用 `anon` 可以保留任意的 `condition` 语句（使用字符串），同时保持指南的对齐，而无需用户关心全局存储或全局 CPS（延续传递风格）。可以通过重写示例代码来体验这种更干净的语法，它既支持字符串延迟访问，又避免了默认全局变量的推荐用法带来的困扰。","https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fissues\u002F502",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},33553,"LKJCorrCholesky 分布的 log_prob 似乎对任何输入都返回相同的值，这是正常的吗？","该问题已被关闭，通常意味着行为符合预期或已在后续版本中通过文档澄清。`LKJCorrCholesky` 用于采样相关矩阵的 Cholesky 因子。如果您发现 `log_prob` 表现异常，请确保输入张量的形状和类型符合分布要求（例如，输入应为下三角矩阵形式）。此外，`initialize_model` 等实用工具函数可用于生成 `potential_fn`，并在多进程环境下正常工作，这有助于调试和验证模型初始化过程。如果遇到具体问题，建议检查 Pyro 的最新文档或示例用法。","https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fissues\u002F1902",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},33554,"Pyro 是否有计划实现指数平滑 RNN (ES-RNN) 用于时间序列预测？","社区已经有部分实现的 PyTorch 版本可用。您可以参考 GitHub 仓库 `damitkwr\u002FESRNN-GPU`，该版本已经在 M4 竞赛数据集上进行了测试，复现了原始 ES-RNN 的结果并在某些区间表现更好。原作者 Slawek 也对开源工作表示了感谢和支持。如果您想贡献或使用该功能，可以直接查看该外部仓库的代码和论文详情。","https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fissues\u002F1287",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},33555,"如何在 HMC 和 NUTS 算法中实现质量矩阵（Mass Matrix）的自适应调整？","该功能已通过 PR #1442 合并到 Pyro 中。实现过程中讨论了如何让 MCMC 内核访问预热（warmup）迭代次数以便分块调整质量矩阵。最终方案可能涉及在 `HMC.setup()` 中添加预热次数参数，或通过 wrapper 配置自适应策略。如果您需要自定义自适应逻辑，可以参考 Stan 参考手册第 34.2 节关于分块方案的描述，并查看 Pyro 源码中关于 Welford 方案的实现细节。","https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fissues\u002F1137",{"id":155,"question_zh":156,"answer_zh":157,"source_url":143},33556,"对于非 MCMC 算法（如 SVI），是否有通用的模型初始化工具函数？","`initialize_model` 工具函数主要用于 HMC 生成 `potential_fn`，但其实现目前特定于 HMC（如特定的参数初始化方式）。对于 SVI 和自动指南（autoguides），它们有自己更通用的初始化策略。社区建议将更通用的实用函数（如 `log_joint`, `get_transforms` 等）抽象到 `infer` 模块级别，以便被自动指南和 HMC 共同使用。目前您可以通过 `infer.util` 或直接参考相关 PR（如 #1941）中的示例来使用这些功能。",[159,164,169,174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254],{"id":160,"version":161,"summary_zh":162,"released_at":163},255761,"1.9.1","## 新特性\n* `Stable.log_prob()` 现已实现，并由 BenZickel 在 #3369 和 #3370 中使其可微分。\n* 由 @BenZickel 引入了 `pyro.infer.predictive.WeighedPredictive`，该类在预测样本的同时报告权重，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3345。\n* 由 @BenZickel 实现了加权样本的重采样器，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3352。\n* 添加了计算加权样本分位数的函数，由 @BenZickel 完成，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3340。\n* 向 `WeighedPredictive` 的结果中添加了有效样本量分析，由 @BenZickel 完成，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3351。\n* 引入了 `PyroModuleList`，因为 `torch.nn.ModuleList` 在进行切片索引时会重新初始化模块，由 @MartinBubel 完成，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3339。\n\n## 类型注解\n* 对 `pyro.nn.module` 进行类型注解，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3337。\n* 修复了类型注解相关问题，详见 #3333 和 #3334。\n\n## 其他变更\n* @dario-coscia 对 HMC 文档进行了小幅更新，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3335。\n* @ordabayevy 对 `pyro.nn.dense_nn` 和 `pyro.nn.auto_reg_nn` 进行了类型注解，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3342。\n* @ordabayevy 启用了 tests 文件夹的类型检查功能，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3336。\n* @cafletezbrant 重新实现了 GPU 上的自回归神经网络，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3346。\n* @ordabayevy 解决了 GCC-8 CI 错误测试问题，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3349。\n* 为解决 0.3.5 版本的问题，将 ruff 版本固定为 0.3.4，由 @BenZickel 完成，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3354。\n* @ordabayevy 修复了 ruff 设置，并移除了 flake8 和 isort 的设置，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3356。\n* @BenZickel 取消了对 ruff 版本的固定，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3357。\n* @fritzo 将依赖项从 jupyter 切换到 notebook，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3360。\n* @BenZickel 添加了用于比较多变量分布的能量得分评分规则，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3362。\n* @eteq 在 Docker Makefile 中添加了 Jupyter Lab 选项，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3363。\n* 用 numpy.cumsum 替代 torch._utils._accumulate，由 @BenZickel 完成，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3364。\n* 修复了本地参数模式下 PyroModule 的渲染错误，由 @eb8680 完成，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3366。\n\n## 新贡献者\n* @dario-coscia 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3335 中完成了首次贡献。\n* @MartinBubel 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3339 中完成了首次贡献。\n* @BenZickel 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3340 中完成了首次贡献。\n* @cafletezbrant 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3346 中完成了首次贡献。\n* @eteq 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3363 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fcompare\u002F1.9.0...1.9.1","2024-06-02T00:37:00",{"id":165,"version":166,"summary_zh":167,"released_at":168},255762,"1.9.0","## 重大变更\n\n- 停止对 PyTorch 1 的支持\n- 停止对 Python 3.7 的支持\n\n## 新特性\n- 在 @ordabayevy 的努力下，Pyro 的部分模块现已提供类型注解。如有任何问题，请随时告知我们。我们也欢迎更多开发者为 Pyro 的剩余部分添加类型注解。#2550\n- @francois-rozet 使用 [Zuko](https:\u002F\u002Fgithub.com\u002Fprobabilists\u002Fzuko) 正则化流编写了新的教程。\n- @martinjankowiak 实现了一个新的简单 [RandomWalkKernel](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.9.0\u002Fmcmc.html#randomwalkkernel)。\n- @peblair 添加了一个新的 [SimplexToOrderedTransform](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.9.0\u002Fdistributions.html#simplextoorderedtransform)。\n- @eb8680 提供了一个新的简单的 [PyTorch 训练示例](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fsvi_torch.html)。\n\n## 详细变更\n* @austinv11 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3253 中修复了 GammaPoisson 分布忽略 validate_args 参数的问题。\n* @martinrohbeck 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3254 中更新了文档并修正了拼写错误。\n* @martinjankowiak 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3258 中修复了 intro_long.ipynb 中的 custom_guide。\n* @martinjankowiak 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3264 中于 cevae 中的 dataloader 中使用了 generator 参数。\n* @deoxyribose 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3261 中修复了 SBVM 采样器。\n* @r3v1 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3266 中实现了确定性函数的渲染。\n* @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3267 中将 lap.lapjv() 替换为 scipy.optimize.linear_sum_assignment()。\n* @MeenuyD 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3270 中修复了 LeakyReLUTransform 中错误的陪域。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3272 中停止对 PyTorch \u003C 2.0 的支持。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3271 中为 `param_store.py` 添加了类型注解。\n* @cyianor 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3277 中解决了 #3274 中的问题。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3278 中停止对 Python 3.7 的支持。\n* @fehiepsi 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3281 中更新了稳定分布 Nolan 参考文献的链接。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3283 中修复了 `pyro.poutine.handlers`。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3285 中显式添加了 handlers。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3287 中使用 `functools.wraps` 来保留 `handler` 的签名。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3288 中为 `pyro.poutine.runtime` 添加了类型注解。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3290 中为 `pyro.poutine.messenger` 添加了类型注解。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3292 中为 `pyro.primitives` 和 `poutine.block_messenger` 添加了类型注解。\n* @fehiepsi 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3293 中将 os 添加到 readthedocs.yml 文件中。\n* @fehiepsi 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3294 中移除了 rtd.yml 文件中的 python.version 条目。\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-p","2024-02-19T18:02:43",{"id":170,"version":171,"summary_zh":172,"released_at":173},255763,"1.8.6","## 摘要\n* 重新启用对 PyTorch 1.11 的支持（此前 Pyro 1.8.5 版本曾因依赖 torch>=2.0 而不得不暂时移除对该版本的支持）\n* 改进 Pyro 中围绕 Torch 分布的分布包装器的文档字符串 #3246\n\n## 变更内容\n* @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3223 中重构了 `ProvenanceTensor`，使其使用 `pytree`\n* @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3224 中创建了 `FUNDING.yml`\n* @martinrohbeck 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3227 中移除了 SS-VAE 模型中的 DataParallel 容器\n* @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3229 中修复了 jit ELBO 的符号错误\n* @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3231 中将 flake8+isort 替换为 ruff\n* @martinjankowiak 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3233 中修复了 `AutoMultivariateNormal` 中的 `_loc_scale` 方法\n* @francois-rozet 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3242 中恢复对 `torch>=1.11.0` 的支持\n* @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3246 中将 Torch 分布的文档字符串拼接到分布包装器的末尾\n* @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3250 中禁用了 ReadTheDocs 上的 PDF 构建\n* @fehiepsi 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3251 中同时禁用了 ReadTheDocs 上的 PDF 和 EPUB 构建\n* @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3247 中修复了 #3245 关于 `poutine.trace(graph_type=\"dense\")` 的 bug\n* @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3252 中将版本号提升至 1.8.6\n\n## 新贡献者\n* @francois-rozet 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3242 中完成了首次贡献\n* @rtviii 与 @fritzo 合作完成了 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3246\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fcompare\u002F1.8.5...1.8.6","2023-07-29T21:20:27",{"id":175,"version":176,"summary_zh":177,"released_at":178},255764,"1.8.5","此版本包含多项修复，以支持 PyTorch 2。\n\n## 变更内容\n* 更新基础学习率调度器，由 @eb8680 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3167 中完成\n* 更新 GP 教程以解除 #3174 的阻塞，由 @fehiepsi 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3175 中完成\n* 添加替代处理程序，由 @thisiscam 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3125 中完成\n* 更新 torch_patch.py，由 @S163669 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3174 中完成\n* 修复：指数变换（归一化流教程）中 log-absolute-derivative 的拼写错误，关闭 #3176，由 @felixschltr 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3177 中完成\n* 对整个代码库重新运行最新版 black，由 @martinjankowiak 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3178 中完成\n* 渲染模型时保留文件路径，由 @LysSanzMoreta 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3186 中完成\n* 添加条件逆和组合 TransformModule，由 @eb8680 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3185 中完成\n* PyTorch Lightning 示例，由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3189 中完成\n* 修复并更新 GMM 教程，由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3193 中完成\n* 修复 `infer.inspect` 中的拼写错误，由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3198 中完成\n* 修复 subsample_messenger.py 中关于子采样设备的 bug，由 @hjnnjh 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3195 中完成\n* 依赖跟踪教程，由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3197 中完成\n* 使 patch_dependency 在依赖漂移情况下更加安全，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3204 中完成\n* 弃用 `CorrLCholeskyTransform`，转而使用上游的 `CorrCholeskyTransform`，由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3199 中完成\n* VAE：改进 ELBO 图表，由 @martinrohbeck 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3205 中完成\n* 从 pyro\u002F__init__.py 的 __all__ 中移除遗留行，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3210 中完成\n* 修复 PyTorch 2.0 中的学习率调度器问题（关闭 #3202），由 @ilia-kats 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3207 中完成\n* 在序列化之前清除 .unconstrained 的弱引用；更频繁地重建它们，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3212 中完成\n* 将 `pl.Trainer` 参数添加到 argparse，由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3217 中完成\n* 使用 PyTorch 2.0 运行 CI，由 @eb8680 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3192 中完成\n* 使 ProvenanceTensor 行为更像 Tensor（关闭 #3218），由 @ilia-kats 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3220 中完成\n* 版本升级至 1.8.5，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3222 中完成\n\n## 新贡献者\n* @thisiscam 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3125 中完成了首次贡献\n* @S163669 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3174 中完成了首次贡献\n* @felixschltr 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3177 中完成了首次贡献\n* @LysSanzMoreta 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3186 中完成了首次贡献\n* @hjnnjh 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyr 中完成了首次贡献","2023-05-29T02:59:36",{"id":180,"version":181,"summary_zh":182,"released_at":183},255765,"1.8.4","## 修复\n* 允许使用 torch>=2，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3164 中完成\n* 修复了 `SineBivariateVonMises` 的 `log_prob` 中 corr \u003C -1e-8 时出现 NaN 的问题，由 @OlaRonning 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3165 中完成\n* 允许为 potential_fn 计算注册自定义异常处理程序，由 @Balandat 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3168 中完成\n\n## 新增\n* 允许渲染半监督模型，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3159 中完成\n* 添加 `GroupedNormalNormal` 分布，由 @martinjankowiak 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3163 中完成\n* 将制作教程添加到文档的 CI 工作流中，由 @eb8680 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3012 中完成\n\n## 新贡献者\n* @Balandat 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3168 中完成了他们的首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fcompare\u002F1.8.3...1.8.4","2023-01-03T22:38:54",{"id":185,"version":186,"summary_zh":187,"released_at":188},255766,"1.8.3","## 变更内容\n* 重命名 custom_objectives_training.ipynb -> custom_objectives.ipynb，由 @martinjankowiak 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3141 中完成\n* 暴露高斯算法，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3145 中完成\n* 修复 reverse_out_bound_quadratic_spline，由 @LiaoShiqi97 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3140 中完成\n* 改进 sequential_gaussian_filter_sample()，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3146 中完成\n* 在高斯运算中为 Cholesky 分解添加抖动，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3151 中完成\n* 清理全局设置的处理，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3152 中完成\n* 添加选项以阻止 PyroModule 共享参数，由 @eb8680 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3149 中完成\n* 确保与 torch>=1.13、torchvision>=0.14 的兼容性，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3155 中完成\n* 为 HMC 添加 min_stepsize 和 max_stepsize，避免无限循环，由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3157 中完成\n\n## 新贡献者\n* @LiaoShiqi97 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3140 中做出了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fcompare\u002F1.8.2...1.8.3","2022-11-22T20:45:53",{"id":190,"version":191,"summary_zh":192,"released_at":193},255767,"1.8.2","## 变更内容\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3055 中修复了教程的 nbshpinx 渲染问题。\n* 由 @Jayanth-kumar5566 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3058 中修改了 Dockerfile，使用 wget 替代 curl。\n* 由 @Jayanth-kumar5566 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3059 中将 Dockerfile 更新为使用 Ubuntu 18.04。\n* 由 @Jayanth-kumar5566 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3060 中更新了 CUDA 和基础操作系统版本。\n* 由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3063 中修复了 `contrib.funsor.Trace_EnumELBO` 模型枚举问题。\n* 由 @fehiepsi 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3064 中修复了 Sphinx 上渲染的分布文档字符串。\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3065 中添加了将 AutoNormal 应用于两个不同模型的测试。\n* 由 @dilaragokay 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3066 中修复了 AIR 教程中的链接。\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3071 中通过 erfc 对 ProjectedNormal.log_prob() 进行数值稳定化。\n* 由 @ivetasarfyova 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3076 中将文档中的类名修正为 VariationalSparseGP。\n* 由 @ivetasarfyova 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3077 中修正了 Nystrom 近似公式中的索引。\n* 由 @ivetasarfyova 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3078 中移除了文档中多余的 svi 步骤调用。\n* 由 @dilaragokay 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3083 中为 `render_model` 的 `model_args` 和 `model_kwargs` 添加了类型断言。\n* 由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3086 中移除了 AIR 示例中的 `batch_expand` 辅助函数。\n* 由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3087 中修复了 AIR 教程中的一个拼写错误。\n* 由 @adiehl96 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3084 中修复了 Nyström 的拼写错误。\n* 由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3081 中使用溯源跟踪来计算 `TraceGraph_ELBO` 中的下游成本。\n* 由 @fehiepsi 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3097 中在 render_model 中对参数域使用冒号。\n* 由 @flo-schu 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3099 中将 batch_shape 存储为 torch.Size 对象。\n* 由 @fehiepsi 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3101 中修复了 Python 3.10 的 bound partial 错误。\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3105 中修复了 _logmatmulexp 注释。\n* 由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3109 中修复了枚举教程中的拼写错误。\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3111 中公开了 pyro.contrib.funsor.infer.infer_discrete 的文档。\n* 由 @fraterenz 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3112 中更新了教程 `intro_long` 中 `sample` 的签名。\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3113 中允许 autocorrelation() 在没有 MKL 的情况下运行。\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3115 中修复了 multinomial_goodness_of_fit 的打印问题。\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3114 中对 autocorrelation() 进行数值稳定化。\n* 实现 NanMaskedNormal，","2022-09-06T20:37:01",{"id":195,"version":196,"summary_zh":197,"released_at":198},255768,"1.8.1","## 重大变更\n* 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3045 中更新至 PyTorch 1.11.0\n* 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3047 中停止对 Python 3.6 的支持\n\n## 新特性\n* 关于贝叶斯工作流的新教程 [http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fworkflow.html](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fworkflow.html)，包含 SARS-CoV-2 的实战示例，详见 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F2977\n* 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3039 中，由 karm-patel 实现了在 [`render_model()`](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fstable\u002Finfer.util.html#pyro.infer.inspect.render_model) 中渲染模型参数的功能\n* 分布：\n  * 由 @martinjankowiak 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3010 中添加了 [LogNormalNegativeBinomial](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fdev\u002Fdistributions.html#lognormalnegativebinomial) 分布\n  * 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3050 中实现了 [DiscreteHMM.sample()](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fdev\u002Fdistributions.html#pyro.distributions.DiscreteHMM.sample)\n  * 由 @ordabayevy 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3053 中对 [DiscreteHMM.sample()](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fdev\u002Fdistributions.html#pyro.distributions.DiscreteHMM.sample) 进行了并行化\n  * 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3009 中为 [ProjectedNormal](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fdev\u002Fdistributions.html#pyro.distributions.ProjectedNormal) 参数补充了缺失的文档\n  * 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3011 中支持了 4D 的 [ProjectedNormal](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fdev\u002Fdistributions.html#pyro.distributions.ProjectedNormal) 分布\n\n## 其他变更\n* 由 @martinjankowiak 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F2999 中修复了 repeated_matmul 的 docstring\n* 由 @martinjankowiak 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3002 中将 bart.py 中的学习率设置得更为保守\n* 由 @luiarthur 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3004 中澄清了 `minipyro.py` 中的注释，以修复 #3003 问题\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3020 中更新了 black 格式化工具\n* 由 @nipunbatra 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3017 中关闭了 #3016 问题\n* 由 @fritzo 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3021 中修复了时间序列教程的链接\n* 由 @nipunbatra 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3022 中对 MLE_MAP 和 SVI_P 的文档进行了一些改进\n* 由 @nipunbatra 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3027 中对 [GP 教程](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fgp.html)进行了优化\n* 由 @dhudsmith 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3042 中将指南中的 sample 语句改为 param 语句\n* 由 @GautamV234 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3036 中添加了类型断言，以提高代码的清晰度\n* 由 @andriyor 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3038 中为 PyPI 添加了 GitHub URL\n\n## 新贡献者\n* @luiarthur 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3004 中完成了首次贡献\n* @nipunbatra 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3017 中完成了首次贡献\n* @dhudsmith 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3042 中完成了首次贡献\n* @GautamV234 在 https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F3036 中完成了首次贡献","2022-03-24T14:48:23",{"id":200,"version":201,"summary_zh":202,"released_at":203},255769,"1.8.0","## 新功能与改进\n- 新教程\n  - [Pyro 简介](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fintro_long.html)，全新的入门教程 #2991\n  - [SARS-CoV-2 的逻辑增长模型](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Flogistic-growth.html)，#2982\n  - [用于单细胞转录组学的 SCANVI](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fscanvi.html)，#2975\n  - [模型渲染](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fmodel_rendering.html) #2962\n- 添加了 [pyro.render_model()](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.util.html#pyro.infer.inspect.render_model)，用于可视化模型结构 #2962（基于 @ordabayevy 的 `ProvenanceTensor` 和 `numpyr.render_model()`）\n- 自动指导\n  - 改进了 [AutoMultivariateNormal](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fstable\u002Finfer.autoguide.html#automultivariatenormal) 的参数化 #2972、#2963\n  - 新增了一类基于效应的指导，包括 [AutoNormalMessenger](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#pyro.infer.autoguide.AutoNormalMessenger)、[AutohierarchicalNormalMessenger](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#pyro.infer.autoguide.AutoHierarchicalNormalMessenger) 和 [AutoRegressiveMessenger](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#pyro.infer.autoguide.AutoRegressiveMessenger) #2953、#2955（感谢 @vitkl）\n  - 新增了一个 [AutoGaussian](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#pyro.infer.autoguide.AutoGaussian)，它类似于 `AutoMultivariateNormal`，但基于模型中的依赖结构对精度矩阵进行稀疏分解。\n- 为 MuE 缺失数据离散隐 Markov 模型添加了采样函数 #2898\n- 为取正值的变量添加了 [PositivePowerTransform](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fdev\u002Fdistributions.html#pyro.distributions.transforms.PositivePowerTransform) #2904","2021-12-14T16:17:56",{"id":205,"version":206,"summary_zh":207,"released_at":208},255770,"1.7.0","## 新特性\n- 更新至 PyTorch 1.9 #2887\n- 基于 NUTS 或 HMC 的高维贝叶斯推断的 [StreamingMCMC](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fmcmc.html#streamingmcmc) 类，感谢 @mtsokol 的贡献 #2857。\n  `StreamingMCMC` 是 `MCMC` 的直接替代品，它通过流式计算均值、方差和 r_hat 等统计量来避免在推断过程中存储样本。您可以使用 [pyro.ops.streaming](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fops.html#module-pyro.ops.streaming) 模块，通过组合现有统计量或自定义 [StreamingStats](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fops.html#pyro.ops.streaming.StreamingStats) 的子类来定义自己的统计量 #2856。\n- 使 `poutine.reparam` 与自动指导和 MCMC 中的初始化逻辑兼容 #2876。此前，在使用重参数化器时，您需要手动转换 [init_to_value()](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fdev\u002Finfer.autoguide.html#pyro.infer.autoguide.initialization.init_to_value) 中的值。而在 Pyro 1.7 中，您可以指定一个统一的 `init_to_value()` 输出，无论模型是否经过重参数化处理，该输出都能正常工作。需要注意的是，这涉及到对 [Reparam](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html) 接口的重大重构，即用 [.apply()](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.reparam.Reparam.apply) 替代 [.__call__()](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.reparam.Reparam.__call__)。如果您曾使用 `.__call__()` 定义过自定义的重参数化器，请在下一个 Pyro 版本发布前对其进行重构。\n- 添加具有灵活分布、潜在变量之间稀疏灵活依赖关系以及支持重参数化的 [AutoStructured](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#autostructured) 指导 #2812。该自动指导介于 [AutoNormal](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#autonormal) 和 [AutoIAFNormal](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#autoiafnormal)+[NeuTraReparam](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.neutra.NeuTraReparam) 之间。与 `AutoNormal` 一样，该指导具有可解释性和结构化特点；而与 `NeuTraReparam` 一样，它非常灵活，可用于改善后续 HMC 或 NUTS 推断的几何形状。\n- 感谢 @OlaRonning 贡献的新方向性分布：\n  - [SinSkewedToroidal](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#sineskewed) #2826\n  - [SinBivariateVonMises](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#sinebivariatevonmises) #2821\n- 感谢 @EWeinstein 贡献的新遗传序列和氨基酸序列分布 #2728\n  （参见 https:\u002F\u002Fwww.biorxiv.org\u002Fcontent\u002F10.1101\u002F2020.07.31.231381v2）\n- 具有指数尾部的新分布：\n  - [Logistic](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#logistic) #2895\n  - [SkewLogistic](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.h","2021-07-06T23:56:51",{"id":210,"version":211,"summary_zh":212,"released_at":213},255771,"1.6.0","## Breaking changes\r\n- Update to [PyTorch 1.8 release](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch\u002Freleases\u002Ftag\u002Fv1.8.0) (required).\r\n- Enable validation by default #2701. To disable globally call [pyro.enable_validation(False)](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fprimitives.html#pyro.primitives.enable_validation); or disable locally to one distribution via e.g. `Normal(loc, scale, validate_args=False)`.\r\n- Switch from `LKJCorrCholesky` distribution to upstream [LKJCholesky](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#lkjcholesky) distribution #2771.\r\n\r\n## New Tutorials\r\n- [Product LDA](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fprodlda.html) for probabilistic topic modeling #2729.\r\n\r\n## New features\r\n- Support masked conditioning via [pyro.sample(..., obs_mask=...)](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fprimitives.html#pyro.primitives.sample) #2772.\r\n- Distributions:\r\n  - Added a [Distribution.infer_shapes()](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#pyro.distributions.torch_distribution.TorchDistributionMixin.infer_shapes) method for static shape analysis #2739.\r\n  - Added [ProjectedNormal](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#projectednormal) for circular and spherical data (with more functionality than `VonMises`) #2736.\r\n  - Added [AffineBeta](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#affinebeta) distribution over arbitrary intervals #2735 by @ordabayevy.\r\n  - Added [SpanningTree](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#spanningtree) properties `.mode`, `.edge_mean` #2727\r\n  - Added [OneOneMatching](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#oneonematching) and [OneTwoMatching](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#onetwomatching) distributions to approximately marginalize over bipartite matchings #2707, #2697.\r\n- Reparametrizers:\r\n  - Added [ProjectedNormalReparam](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Finfer.reparam.html#pyro.infer.reparam.projected_normal.ProjectedNormalReparam) for inference with [ProjectedNormal](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#projectednormal) distributions #2736.\r\n  - Support more batch distributions in [HaarReparam](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Finfer.reparam.html#pyro.infer.reparam.haar.HaarReparam) #2731.\r\n- [Constraints](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#module-pyro.distributions.constraints):\r\n  - Added a [Constraint.event_dim](https:\u002F\u002Fpytorch.org\u002Fdocs\u002F1.8.0\u002Fdistributions.html#module-torch.distributions.constraints) property #2753.\r\n  - Added `positive_ordered_vector`, `corr_matrix` #2762\r\n  - Added `sphere` #2736.\r\n  - Added `softplus_positive` and `softplus_lower_cholesky` constraints with numerically stable [SoftplusTransform](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fdev\u002Fdistributions.html#softplustransform) and [SoftplusLowerCholeskyTransform](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fdev\u002Fdistributions.html#softpluslowercholeskytransform) #2767.\r\n- Added a [TraceMarkovEnum_ELBO](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fcontrib.funsor.html#pyro.contrib.funsor.infer.traceenum_elbo.TraceMarkovEnum_ELBO) and `VectorizedMarkovMessenger` for parallel scan enumeration #2703, #2703 by @ordabayevy.\r\n- Added an experimental [autoname handler](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fcontrib.autoname.html) #2745 by @ordabayevy.\r\n- Added [goodness of fit tests](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Ftesting.html#goodness-of-fit-testing) for testing new distribution implementations #2738.\r\n- Support [MaskedDistribution](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Fdistributions.html#maskeddistribution) in [contrib.forecast]() #2709.\r\n\r\n## Bugfixes\r\n- Many fixes to distribution shapes #2759, #2746, #2739.\r\n- Detach [AutoGuide.median()](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Finfer.autoguide.html#pyro.infer.autoguide.AutoGuide.median) and [.quantiles()](https:\u002F\u002Fdocs.pyro.ai\u002Fen\u002F1.6.0\u002Finfer.autoguide.html#pyro.infer.autoguide.AutoNormal.quantiles) methods #2743.","2021-03-04T23:01:34",{"id":215,"version":216,"summary_zh":217,"released_at":218},255772,"1.5.2","This patch release merely\r\n- Pins to requirements to torch\u003C1.8 to avoid breaking changes in torch 1.8.0 (introduced in pytorch\u002Fpytorch#50547 pytorch\u002Fpytorch#50581).\r\n- Fixes an fft bug #2731","2021-02-01T23:22:45",{"id":220,"version":221,"summary_zh":222,"released_at":223},255773,"1.5.1","## New features\r\n- #2693 A [GumbelSoftmaxReparam](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fstable\u002Finfer.reparam.html#pyro.infer.reparam.softmax.GumbelSoftmaxReparam) for relaxed categorical distributions\r\n\r\n## Bug fixes\r\n- #2683 Support PyTorch 1.7\r\n- #2682 Fix `help(MyDistribution)`\r\n- #2679 Fix `TraceEnum_ELBO.compute_marginals()`\r\n- #2677 Warn if `infer_discrete()` finds no discrete sites","2020-11-17T23:30:42",{"id":225,"version":226,"summary_zh":227,"released_at":228},255774,"1.5.0","## New features\r\n\r\n- New Tutorials:\r\n  - [Deep Generative Modeling with Single Cell Data](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fscanvi.html)\r\n  - [Conditional Variational Autoencoder](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fcvae.html)\r\n  - [Forecasting with Dynamic Linear Models](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fforecasting_dlm.html)\r\n- New distributions and transforms:\r\n    - [OrderedLogistic](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#orderedlogistic) distribution and [OrderedTransform](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#orderedtransform)\r\n    - [ConditionalMatrixExponential](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#conditionalmatrixexponential) normalizing flow\r\n    - [ConditionalSplineAutoregressive](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#conditionalsplineautoregressive) normalizing flow\r\n- [contrib.forecast](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fcontrib.forecast.html#pyro.contrib.forecast.forecaster.Forecaster) now supports [HaarReparam](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.haar.HaarReparam), [DiscreteCosineReparam](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.discrete_cosine.DiscreteCosineReparam), and [poutine.trace](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fpoutine.html#pyro.poutine.handlers.trace) to record posterior samples of latent variables.\r\n- [CompartmentalModel](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fcontrib.epidemiology.html#pyro.contrib.epidemiology.compartmental.CompartmentalModel) now supports a [.finalize()](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fcontrib.epidemiology.html#pyro.contrib.epidemiology.compartmental.CompartmentalModel.finalize) method to add likelihoods that couple states across time.\r\n- Integration with [Funsor](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Ffunsor), an experimental intermediate language for probabilistic programming\r\n    - [pyro.contrib.funsor](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fcontrib.funsor.html) is a new backend for Pyro that aims to simplify the implementations of Pyro's most powerful inference engines. For details, see: [tutorial 1](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fcontrib_funsor_intro_i.html), [tutorial 2](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fcontrib_funsor_intro_ii.html), [example usage with `pyroapi`](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fblob\u002Fdev\u002Fexamples\u002Fcontrib\u002Ffunsor\u002Fhmm.py)\r\n    - [poutine.collapse](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fpoutine.html#pyro.poutine.handlers.collapse) and [pyro.barrier](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fprimitives.html#pyro.primitives.barrier) provide experimental support for collapsing conjugate fragments within existing inference algorithms, using [Funsor](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Ffunsor) under the hood.\r\n\r\n## Breaking changes\r\n- Require PyTorch 1.6.\r\n- Drop support for Python 3.5; require Python 3.6+.\r\n- Zero inflated distributions changed interface. #2643\r\n\r\n## Bug fixes & performance tweaks\r\n- [pyro.factor](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fstable\u002Fprimitives.html#pyro.primitives.factor) statements are now allowed in guides without warning. #2664\r\n- Fix model-directed subsampling in autoguides. #2638\r\n- Fix sample shape bug in [LKJCorrCholesky](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fstable\u002Fdistributions.html#lkjcorrcholesky) distribution. #2617\r\n- Speed up log-matmul-exp operations in discrete enumeration and [DiscreteHMM](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fstable\u002Fdistributions.html#discretehmm). #2640\r\n- Fix ``potential_fn`` issues in MCMC. #2591","2020-10-15T14:48:44",{"id":230,"version":231,"summary_zh":232,"released_at":233},255775,"1.4.0","## New features\r\n\r\n- A new [pyro.contrib.epidemiology](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fcontrib.epidemiology.html) module for discrete-state discrete-time stochastic compartmental models. #2426\r\n- New tutorials on:\r\n    - [Normalizing flows](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fnormalizing_flows_i.html)\r\n    - [Epidemiology](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fepi_intro.html)\r\n    - [PyroModule](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fmodules.html)\r\n    - [MAP\u002FMLE inference](https:\u002F\u002Fpyro.ai\u002Fexamples\u002Fmle_map.html)\r\n- New transforms and normalizing flows:\r\n    - Monotonic rational quadratic [Spline](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#spline) flow.\r\n    - A [SplineCoupling](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#splinecoupling) flow.\r\n    - A [SplineAutogregressive](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#splineautoregressive) flow.\r\n    - A [MatrixExponential](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#matrixexponential) flow.\r\n    - Conditional versions of `AffineAutoregressive`, `Householder`, `NeuralAutogregressive`, `Spline`, and `GeneralizedChannelPermute` flows.\r\n    - A Haar wavelet [transform](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#pyro.distributions.transforms.HaarTransform) and [reparameterizer](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.haar.HaarReparam).\r\n    - `Permute` and `AffineCoupling` can operate on a specific dimension with `dim` keyword argument #2472\r\n- New distributions:\r\n    - [CoalescentTimes](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#coalescenttimes), [CoalescentTimesWithRate](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#coalescenttimeswithrate), and [CoalescentRateLikelihood](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fcontrib.epidemiology.html#pyro.distributions.CoalescentRateLikelihood) for coalescent processes in phylogenetics.\r\n    - [TruncatedPolyGamma](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#pyro.distributions.TruncatedPolyaGamma).\r\n    - [ExtendedBinomial](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#extendedbinomial) and [ExtendedBetaBinomial](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#extendedbetabinomial) with relaxed support.\r\n    - [ImproperUniform](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#improperuniform) for expressing factor graphs.\r\n- Improvements to MCMC:\r\n    - structured mass matrix adaptation #2425 #2473\r\n    - arrowhead precision matrix adaptation #2465\r\n    - support for randomized init strategies like [init_to_generated](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fepi_intro.html) #2417\r\n- Improvements to SMC:\r\n    - systematic resampling #2488\r\n    - resampling based on effective sample size (ESS) #2486\r\n- A new [SplitReparam](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.split.SplitReparam) allows different inference strategies to apply to different parts of a tensor random variable.\r\n- A new initialization strategy [init_to_generated](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#pyro.infer.autoguide.initialization.init_to_generated).\r\n- A [RandomVariable](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fcontrib.randomvariable.html#pyro.contrib.randomvariable.random_variable.RandomVariable) container class to support method chaining syntax for transforming distributions #2448\r\n\r\n## Bug fixes\r\n\r\n- Support sequential plates in RenyiELBO #2541\r\n- Fixes to `AffineAutogregressive` #2504\r\n- Fixes to `BatchNorm` `TransformModule` #2459\r\n- Fixes to how some transforms handle parameters #2544\r\n- Fixes to reraising logic that clean up error reporting during inference #2494\r\n- [many other fixes](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpulls?q=is%3Apr+is%3Aclosed+merged%3A%3E2020-04-06+merged%3A%3C%3D2020-07-18) to documentation and code","2020-07-20T13:00:52",{"id":235,"version":236,"summary_zh":237,"released_at":238},255776,"1.3.1","## New features\r\n\r\n- A new [Spline](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#spline) transform which implements element-wise rational spline bijections of linear order.\r\n- A new [ConditionalAffineCoupling](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#conditionalaffinecoupling) transform which implements the affine coupling layer of RealNVP that conditions on an additional context variable.\r\n\r\n### Enhancements to the [pyro.contrib.forecast](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Fstable\u002Fcontrib.forecast.html) module\r\n\r\n- Support drawing samples in batches.\r\n- Add walltime to backtest to measure performance of model training and forecasting.\r\n- Support more likelihood distributions: Geometric, NegativeBinomial, ZeroInflatedNegativeBinomial.\r\n\r\n## Bug fixes\r\n\r\n- #2399 raises an error when HMC\u002FNUTS is used for a model with subsampling.\r\n- #2390 makes `PyroModule` compatible with `torch.nn.RNN`.\r\n- #2388 allows unused params in CSIS inference.\r\n- #2384 fixes some caching issues in calculation of `log_abs_det_jacobian` of TransformModules\r\n- #2365 fixes a naming bug in `LocScaleReparam` whereby all loc-scale reparameterized sites shared a single centeredness parameter.\r\n- #2355 makes `jit_compile=True` flag in HMC\u002FNUTS work for models with `pyro.param` statements.\r\n","2020-04-07T02:08:42",{"id":240,"version":241,"summary_zh":242,"released_at":243},255777,"1.3.0","## New features\r\n\r\n- A new [AutoNormal](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#pyro.infer.autoguide.AutoNormal) guide that supports data subsampling, thanks to @patrickeganfoley.\r\n- Data subsampling support for the [AutoDelta](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#pyro.infer.autoguide.AutoDelta) guide.\r\n- A new [pyro.subsample](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fprimitives.html#pyro.primitives.subsample) primitive to aide in subsampling.\r\n- An [AutoNormalizingFlow](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.autoguide.html#pyro.infer.autoguide.AutoNormalizingFlow) autoguide.\r\n- A new [pyro.contrib.forecast](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fcontrib.forecast.html) module for multivariate hierarchical heavy-tailed forecasting, together with three tutorials: [uivariate, heavy-tailed](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fforecasting_i.html), [state space models](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fforecasting_ii.html), and [hierarchical models](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fforecasting_iii.html).\r\n- A tutorial on [Boosting Black Box Variational Inference](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fboosting_bbvi.html), thanks to @lorenzkuhn, @gideonite, @sharrison5, and @TNU-yaoy.\r\n- A [NeuTraReparam](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fneutra.html) example.\r\n- [PyroModule]()'s interface is now stable, no longer EXPERIMENTAL.\r\n- Better validation for [GaussianHMM](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#gaussianhmm) and [LinearHMM](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#linearhmm) distributions.\r\n- Miscellaneous new [GaussianHMM](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#gaussianhmm) method to handle conjugacy.\r\n\r\n## Bug fixes\r\n\r\n- #2345 remove pillow-simd dependency\r\n- #2327 Make pyro.deterministic not warn when called outside of inference\r\n- #2321 Support plates in RenyiELBO\r\n- #2266 Fixes to transform handling in MCMC api ","2020-03-08T01:40:44",{"id":245,"version":246,"summary_zh":247,"released_at":248},255778,"1.2.1","Patches [1.2.0](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Freleases\u002Ftag\u002F1.2.0) with the following bug fixes:\r\n - Fix for MCMC with parallel chains using multiprocessing, where transforms to the latent sites' support was not being correctly stored.\r\n - Other minor rendering related fixes for tutorials. ","2020-01-23T00:42:54",{"id":250,"version":251,"summary_zh":252,"released_at":253},255779,"1.2.0","## Misc changes\r\n\r\n* Updated to PyTorch 1.4.0 and torchvision 0.5.0.\r\n* Changed license from MIT to Apache 2.0 and removed Uber CLA as part of Pyro's move to the [Linux foundation](https:\u002F\u002Flfai.foundation).\r\n\r\n## Reparameterization\r\n\r\nThis release adds a new effect handler and a collection of strategies that reparameterize models to improve geometry. These tools are largely orthogonal to other inference tools in Pyro, and can be used with SVI, MCMC, and other inference algorithms.\r\n\r\n* [poutine.reparam()](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fpoutine.html#pyro.poutine.handlers.reparam) is a new effect handler that transforms models into other models for which inference may be easier [(Gorinova et al. 2019)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1906.03028).\r\n* [pyro.infer.reparam](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#module-pyro.infer.reparam) is a collection of reparameterization strategies following a standard [Reparam](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.reparam.Reparam) interface:\r\n  * [Decentering transforms](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#module-pyro.infer.reparam.loc_scale) for location-scale families [(Gorinova et al. 2019)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1906.03028).\r\n  * [Transform unwrapping](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#module-pyro.infer.reparam.transform) to deconstruct `TransformedDistribution`s.\r\n  * [Discrete Cosine transforms](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#module-pyro.infer.reparam.discrete_cosine) for frequency-domain parameterizations (useful for inference in time series).\r\n  * Auxiliary variable methods for [Levy Stable](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#module-pyro.infer.reparam.stable) and [StudentT](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#module-pyro.infer.reparam.studentt) distributions.\r\n  * [Linear Hidden Markov Model](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#module-pyro.infer.reparam.hmm) reparameterization, allowing a range of non-Gaussian HMMs to be treated as conditional Gaussian processes.\r\n  * [Neural Transport](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#module-pyro.infer.reparam.neutra) uses SVI to learn the geometry of a model before drawing samples using HMC [(Hoffman et al. 2019)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1903.03704).\r\n* A [tutorial](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fstable.html) on inference with [Levy Stable](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#stable) distrubutions, demonstrating [StableReparam](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.stable.StableReparam), [DiscreteCosineReparam](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html#pyro.infer.reparam.discrete_cosine.DiscreteCosineReparam), and [EnergyDistance](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finference_algos.html#pyro.infer.energy_distance.EnergyDistance).\r\n\r\n\r\n## Other new features\r\n* A [tutorial](http:\u002F\u002Fpyro.ai\u002Fexamples\u002Fdirichlet_process_mixture.html) on Dirichlet process mixture modeling, contributed by @m-k-S\r\n* Added a [LinearHMM](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#linearhmm) distribution with an `.rsample()` method. This supports non-Gaussian noise such as [Levy Stable](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#stable) and [StudentT](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#studentt), but requires [reparameterization](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finfer.reparam.html) for inference.\r\n* Implemented a [GaussianHMM.rsample()](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#pyro.distributions.GaussianHMM.rsample) method for drawing joint samples from a linear-Gaussian HMM.\r\n* Added a [LowerCholeskyAffine](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#lowercholeskyaffine) transform.\r\n* [#2264](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F2264) improves speed and numerical stability of `MultivariateNormal` conversion from `scale_tril` to `precision`.\r\n\r\n## Bug fixes\r\n\r\n- [#2263](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F2263) fixes MCMC api to allow implementations other than HMC and NUTS.\r\n- [#2244](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F2244) fixes an `event_dim` issue in `ConditionedPlanar` flow.\r\n- [#2243](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F2243) fixes a bug in `AffineCoupling`.\r\n- [#2227](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fissues\u002F2227) fixes device placement of the `MultivariateStudentT.df` param.\r\n- [#2226](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F2226) fixes an edge case bug in discrete enumeration.","2020-01-17T18:44:29",{"id":255,"version":256,"summary_zh":257,"released_at":258},255780,"1.1.0","## New Features\r\n- [pyro.infer.ReweightedWakeSleep](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finference_algos.html#pyro.infer.rws.ReweightedWakeSleep) implements the Reweighted Wake Sleep algorithm [(Le et al. 2019)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1805.10469). Contributed by [Siddharth Narayanaswamy](https:\u002F\u002Fgithub.com\u002Fiffsid) and [Tuan Anh Le](https:\u002F\u002Fgithub.com\u002Ftuananhle7).\r\n- [pyro.infer.TraceTMC_ELBO](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finference_algos.html#pyro.infer.tracetmc_elbo.TraceTMC_ELBO) implements the Tensor Monte Carlo marginal likelihood estimator [(Aitchinson 2019)](https:\u002F\u002Fpapers.nips.cc\u002Fpaper\u002F8936-tensor-monte-carlo-particle-methods-for-the-gpu-era.pdf), a generalization of the importance-weighted autoencoder objective.\r\n- [pyro.infer.EnergyDistance](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finference_algos.html#pyro.infer.energy_distance.EnergyDistance) implements a likelihood-free inference algorithm based on Szekely's energy statistics, a multidimensional generalization of CRPS [(Gneiting & Raftery 2007)](https:\u002F\u002Fwww.stat.washington.edu\u002Fraftery\u002FResearch\u002FPDF\u002FGneiting2007jasa.pdf).\r\n- [pyro.contrib.cevae]() implements the Causal Inference VAE of [(Louizos et al. 2017)](http:\u002F\u002Fpapers.nips.cc\u002Fpaper\u002F7223-causal-effect-inference-with-deep-latent-variable-models.pdf). See [examples\u002Fcontrib\u002Fcevae\u002Fsynthetic.py](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fblob\u002Fdev\u002Fexamples\u002Fcontrib\u002Fcevae\u002Fsynthetic.py) for an end-to-end usage example.\r\n- [pyro.deterministic](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fprimitives.html#pyro.deterministic) primitive to record deterministic values in the trace.\r\n- [pyro.nn.to_pyro_module_()](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fnn.html#pyro.nn.module.to_pyro_module_) recursively converts an regular `nn.Module` to a [PyroModule](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fnn.html#pyro.nn.module.PyroModule) in-place.\r\n\r\n- A default implementation for [Distribution.expand()](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#pyro.distributions.torch_distribution.TorchDistributionMixin.expand) that is available to all Pyro distributions that subclass from `TorchDistribution`, making it easier to create custom distributions.\r\n\r\n### New distributions and transforms\r\n- [MultivariateStudentT](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#multivariatestudentt) is a heavy-tailed multivariate distribution.\r\n- [Stable](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#stable) implements a Lévy α-stable distribution with reparametrized `.rsample()` method but no `.log_prob()`. This can be fit using [EnergyDistance](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Finference_algos.html#pyro.infer.energy_distance.EnergyDistance) inference.\r\n- [ZeroInflatedNegativeBinomial](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#zeroinflatednegativebinomial) is a distribution for count data.\r\n- [LowerCholeskyAffine](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fdistributions.html#lowercholeskyaffine) is a multivariate affine transform.\r\n\r\n\r\n## Other Changes \u002F Bug Fixes\r\n- `pyro.util.save_visualization` has been deprecated, and dependency on `graphviz` is removed.\r\n- [#2197](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F2197) fixed a naming bug in [PyroModule](http:\u002F\u002Fdocs.pyro.ai\u002Fen\u002Flatest\u002Fnn.html#pyro.nn.module.PyroModule) that affected mutliple sub-PyroModules with conflicting names.\r\n- [#2192](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fpull\u002F2192) Bug fix in Planar normalizing flow implementation\r\n- [#2188](https:\u002F\u002Fgithub.com\u002Fpyro-ppl\u002Fpyro\u002Fissues\u002F2188) Make error messages for incorrect arguments to effect handlers more informative\r\n","2019-12-07T02:30:24"]