[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Curt-Park--rainbow-is-all-you-need":3,"tool-Curt-Park--rainbow-is-all-you-need":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 真正成长为懂上",148568,2,"2026-04-09T23:34:24",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[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":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":78,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":32,"env_os":93,"env_gpu":93,"env_ram":93,"env_deps":94,"category_tags":100,"github_topics":101,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":109,"updated_at":110,"faqs":111,"releases":142},6097,"Curt-Park\u002Frainbow-is-all-you-need","rainbow-is-all-you-need","Rainbow is all you need! A step-by-step tutorial from DQN to Rainbow","rainbow-is-all-you-need 是一个专为强化学习爱好者打造的渐进式教程项目，旨在通过代码实战引导用户从基础的 DQN 算法一步步构建出强大的 Rainbow 代理。它有效解决了强化学习领域理论深奥、算法演进复杂以及复现难度高的问题，将抽象的学术论文转化为可运行、可交互的代码章节。\n\n该项目非常适合 AI 开发者、研究人员以及希望深入理解深度强化学习的学生使用。其核心亮点在于采用了模块化的教学设计，涵盖 Double DQN、优先经验回放、Dueling 网络、Noisy Net 等关键改进技术，每一章都兼具理论背景讲解与面向对象的代码实现。此外，项目基于 marimo 构建，以纯 Python 文件形式提供交互式笔记本体验，不仅支持云端直接运行无需本地配置，还具备更好的版本控制和复现性。无论你是想系统掌握算法演进脉络，还是寻找高质量的参考实现，rainbow-is-all-you-need 都能提供清晰且实用的学习路径。","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"assets\u002Fbanner.svg\" alt=\"Rainbow is All You Need\" width=\"800\"\u002F>\n\n[![All Contributors](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fall_contributors-6-orange.svg?style=flat-square)](#contributors)\n\n\u003C\u002Fdiv>\n\nThis is a step-by-step tutorial from DQN to Rainbow.\nEvery chapter contains both of theoretical backgrounds and object-oriented implementation. Just pick any topic in which you are interested, and learn! You can run them directly in the cloud with [molab](https:\u002F\u002Fmolab.marimo.io\u002F) — no local setup needed.\n\nBuilt with [marimo](https:\u002F\u002Fmarimo.io\u002F) — a reactive Python notebook that runs as a pure `.py` file with better reproducibility, git diffs, and interactive UI.\n\nPlease feel free to open an issue or a pull-request if you have any idea to make it better. :)\n\n>If you want a tutorial for policy gradient methods, please see [PG is All You Need](https:\u002F\u002Fgithub.com\u002FMrSyee\u002Fpg-is-all-you-need).\n\n## Contents\n\n01. DQN [[GitHub](01_dqn.py)] [[Preview](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F01_dqn.py)]\n02. DoubleDQN [[GitHub](02_double_q.py)] [[Preview](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F02_double_q.py)]\n03. PrioritizedExperienceReplay [[GitHub](03_per.py)] [[Preview](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F03_per.py)]\n04. DuelingNet [[GitHub](04_dueling.py)] [[Preview](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F04_dueling.py)]\n05. NoisyNet [[GitHub](05_noisy_net.py)] [[Preview](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F05_noisy_net.py)]\n06. CategoricalDQN [[GitHub](06_categorical_dqn.py)] [[Preview](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F06_categorical_dqn.py)]\n07. N-stepLearning [[GitHub](07_n_step_learning.py)] [[Preview](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F07_n_step_learning.py)]\n08. Rainbow [[GitHub](08_rainbow.py)] [[Preview](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F08_rainbow.py)]\n09. Rainbow IQN [[GitHub](09_rainbow_iqn.py)] [[Preview](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F09_rainbow_iqn.py)]\n\n> Click **\"Run in molab\"** on the preview page to open an interactive session where you can edit and run the notebook.\n\n## Prerequisites\n\n```bash\n# Install mise\ncurl https:\u002F\u002Fmise.run | sh\n\n# Clone the project\ngit clone https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need.git\ncd rainbow-is-all-you-need\n\n# Install Python + Create venv + Install Python packages\nmake init\nmake setup\n```\n\n## How to Run\n\nRun and experiment with any notebook:\n```\nmake run notebook=01_dqn.py\n```\n\n## Development\n\n```\nmake format    # run the formatter\nmake lint      # run the linter\n```\n\n## Related Papers\n\n01. [V. Mnih et al., \"Human-level control through deep reinforcement learning.\" Nature, 518\n(7540):529–533, 2015.](https:\u002F\u002Fstorage.googleapis.com\u002Fdeepmind-media\u002Fdqn\u002FDQNNaturePaper.pdf)\n02. [van Hasselt et al., \"Deep Reinforcement Learning with Double Q-learning.\" arXiv preprint arXiv:1509.06461, 2015.](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1509.06461.pdf)\n03. [T. Schaul et al., \"Prioritized Experience Replay.\" arXiv preprint arXiv:1511.05952, 2015.](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1511.05952.pdf)\n04. [Z. Wang et al., \"Dueling Network Architectures for Deep Reinforcement Learning.\" arXiv preprint arXiv:1511.06581, 2015.](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1511.06581.pdf)\n05. [M. Fortunato et al., \"Noisy Networks for Exploration.\" arXiv preprint arXiv:1706.10295, 2017.](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1706.10295.pdf)\n06. [M. G. Bellemare et al., \"A Distributional Perspective on Reinforcement Learning.\" arXiv preprint arXiv:1707.06887, 2017.](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1707.06887.pdf)\n07. [R. S. Sutton, \"Learning to predict by the methods of temporal differences.\" Machine learning, 3(1):9–44, 1988.](http:\u002F\u002Fincompleteideas.net\u002Fpapers\u002Fsutton-88-with-erratum.pdf)\n08. [M. Hessel et al., \"Rainbow: Combining Improvements in Deep Reinforcement Learning.\" arXiv preprint arXiv:1710.02298, 2017.](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1710.02298.pdf)\n09. [W. Dabney et al., \"Implicit Quantile Networks for Distributional Reinforcement Learning.\" arXiv preprint arXiv:1806.06923, 2018.](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1806.06923.pdf)\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https:\u002F\u002Fallcontributors.org\u002Fdocs\u002Fen\u002Femoji-key)):\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fcurt-park\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_beac21b7e5b1.png\" width=\"100px;\" alt=\"Jinwoo Park (Curt)\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jinwoo Park (Curt)\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=Curt-Park\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=Curt-Park\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fkyunghwan-kim-0739a314a\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_1e42607d476b.png\" width=\"100px;\" alt=\"Kyunghwan Kim\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Kyunghwan Kim\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=MrSyee\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWei-1\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_4e8871f877f8.png\" width=\"100px;\" alt=\"Wei Chen\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Wei Chen\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#maintenance-Wei-1\" title=\"Maintenance\">🚧\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwlbksy\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_a956c4459a75.png\" width=\"100px;\" alt=\"WANG Lei\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>WANG Lei\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#maintenance-wlbksy\" title=\"Maintenance\">🚧\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fwww.tun6.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_cdc7ba2b3231.png\" width=\"100px;\" alt=\"leeyaf\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>leeyaf\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=leeyaf\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAFanaei\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_1825098528b1.png\" width=\"100px;\" alt=\"ahmadF\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>ahmadF\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=AFanaei\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frobertoschiavone\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_7890adb98ddb.png\" width=\"100px;\" alt=\"Roberto Schiavone\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Roberto Schiavone\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=robertoschiavone\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDaivdYuan\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_26b5893f4c5e.png\" width=\"100px;\" alt=\"David Yuan\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>David Yuan\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=DaivdYuan\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdhanushka2001\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_c104f18cfe33.png\" width=\"100px;\" alt=\"dhanushka2001\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>dhanushka2001\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=dhanushka2001\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fpierre-couy.dev\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_3e0e11c4b4b8.png\" width=\"100px;\" alt=\"Pierre Couy\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Pierre Couy\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=pcouy\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fanthropic.com\u002Fclaude-code\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_53414183d570.png\" width=\"100px;\" alt=\"Claude\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Claude\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=claude\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https:\u002F\u002Fgithub.com\u002Fall-contributors\u002Fall-contributors) specification. Contributions of any kind welcome!\n","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"assets\u002Fbanner.svg\" alt=\"彩虹就是你所需要的\" width=\"800\"\u002F>\n\n[![所有贡献者](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fall_contributors-6-orange.svg?style=flat-square)](#contributors)\n\n\u003C\u002Fdiv>\n\n这是一份从DQN到Rainbow的循序渐进教程。每一章都包含了理论背景和面向对象的实现代码。只需选择你感兴趣的主题，即可开始学习！你可以使用[molab](https:\u002F\u002Fmolab.marimo.io\u002F)直接在云端运行这些内容——无需本地环境配置。\n\n本项目基于[marimo](https:\u002F\u002Fmarimo.io\u002F)构建——一个响应式的Python笔记本，能够以纯`.py`文件形式运行，具有更好的可复现性、Git差异对比以及交互式用户界面。\n\n如果你有任何改进建议，欢迎随时提出问题或提交拉取请求。 :)\n\n> 如果你想要关于策略梯度方法的教程，请参阅[PG就是你所需要的](https:\u002F\u002Fgithub.com\u002FMrSyee\u002Fpg-is-all-you-need)。\n\n## 目录\n\n01. DQN [[GitHub](01_dqn.py)] [[预览](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F01_dqn.py)]\n02. DoubleDQN [[GitHub](02_double_q.py)] [[预览](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F02_double_q.py)]\n03. 优先级经验回放 [[GitHub](03_per.py)] [[预览](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F03_per.py)]\n04. 决斗网络 [[GitHub](04_dueling.py)] [[预览](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F04_dueling.py)]\n05. 噪声网络 [[GitHub](05_noisy_net.py)] [[预览](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F05_noisy_net.py)]\n06. 分类DQN [[GitHub](06_categorical_dqn.py)] [[预览](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F06_categorical_dqn.py)]\n07. N步学习 [[GitHub](07_n_step_learning.py)] [[预览](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F07_n_step_learning.py)]\n08. Rainbow [[GitHub](08_rainbow.py)] [[预览](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F08_rainbow.py)]\n09. Rainbow IQN [[GitHub](09_rainbow_iqn.py)] [[预览](https:\u002F\u002Fmolab.marimo.io\u002Fgithub\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fblob\u002Fmaster\u002F09_rainbow_iqn.py)]\n\n> 在预览页面点击**“在molab中运行”**，即可打开一个交互式会话，你可以在其中编辑并运行笔记本。\n\n## 先决条件\n\n```bash\n# 安装mise\ncurl https:\u002F\u002Fmise.run | sh\n\n# 克隆项目\ngit clone https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need.git\ncd rainbow-is-all-you-need\n\n# 安装Python + 创建虚拟环境 + 安装Python包\nmake init\nmake setup\n```\n\n## 如何运行\n\n运行并试验任意一个笔记本：\n```\nmake run notebook=01_dqn.py\n```\n\n## 开发\n\n```\nmake format    # 运行格式化工具\nmake lint      # 运行代码检查工具\n```\n\n## 相关论文\n\n01. [V. Mnih等，“通过深度强化学习实现人类水平控制”。《自然》杂志，518(7540):529–533, 2015年。](https:\u002F\u002Fstorage.googleapis.com\u002Fdeepmind-media\u002Fdqn\u002FDQNNaturePaper.pdf)\n02. [van Hasselt等，“深度强化学习中的双重Q学习”。arXiv预印本arXiv:1509.06461, 2015年。](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1509.06461.pdf)\n03. [T. Schaul等，“优先级经验回放”。arXiv预印本arXiv:1511.05952, 2015年。](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1511.05952.pdf)\n04. [Z. Wang等，“用于深度强化学习的决斗网络架构”。arXiv预印本arXiv:1511.06581, 2015年。](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1511.06581.pdf)\n05. [M. Fortunato等，“用于探索的噪声网络”。arXiv预印本arXiv:1706.10295, 2017年。](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1706.10295.pdf)\n06. [M. G. Bellemare等，“强化学习的分布视角”。arXiv预印本arXiv:1707.06887, 2017年。](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1707.06887.pdf)\n07. [R. S. Sutton，“通过时序差分法进行预测的学习”。《机器学习》，3(1):9–44, 1988年。](http:\u002F\u002Fincompleteideas.net\u002Fpapers\u002Fsutton-88-with-erratum.pdf)\n08. [M. Hessel等，“Rainbow：结合深度强化学习的各项改进”。arXiv预印本arXiv:1710.02298, 2017年。](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1710.02298.pdf)\n09. [W. Dabney等，“用于分布强化学习的隐式分位数网络”。arXiv预印本arXiv:1806.06923, 2018年。](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1806.06923.pdf)\n\n## 贡献者\n\n感谢以下各位优秀的朋友（[emoji key](https:\u002F\u002Fallcontributors.org\u002Fdocs\u002Fen\u002Femoji-key)）：\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - 请勿删除或修改此部分 -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fcurt-park\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_beac21b7e5b1.png\" width=\"100px;\" alt=\"Jinwoo Park (Curt)\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jinwoo Park (Curt)\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=Curt-Park\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=Curt-Park\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fkyunghwan-kim-0739a314a\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_1e42607d476b.png\" width=\"100px;\" alt=\"Kyunghwan Kim\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Kyunghwan Kim\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=MrSyee\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWei-1\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_4e8871f877f8.png\" width=\"100px;\" alt=\"Wei Chen\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Wei Chen\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#maintenance-Wei-1\" title=\"维护\">🚧\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwlbksy\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_a956c4459a75.png\" width=\"100px;\" alt=\"WANG Lei\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>WANG Lei\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#maintenance-wlbksy\" title=\"维护\">🚧\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fwww.tun6.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_cdc7ba2b3231.png\" width=\"100px;\" alt=\"leeyaf\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>leeyaf\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=leeyaf\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAFanaei\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_1825098528b1.png\" width=\"100px;\" alt=\"ahmadF\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>ahmadF\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=AFanaei\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frobertoschiavone\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_7890adb98ddb.png\" width=\"100px;\" alt=\"Roberto Schiavone\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Roberto Schiavone\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=robertoschiavone\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDaivdYuan\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_26b5893f4c5e.png\" width=\"100px;\" alt=\"David Yuan\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>David Yuan\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=DaivdYuan\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdhanushka2001\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_c104f18cfe33.png\" width=\"100px;\" alt=\"dhanushka2001\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>dhanushka2001\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=dhanushka2001\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fpierre-couy.dev\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_3e0e11c4b4b8.png\" width=\"100px;\" alt=\"Pierre Couy\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Pierre Couy\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=pcouy\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fanthropic.com\u002Fclaude-code\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_readme_53414183d570.png\" width=\"100px;\" alt=\"Claude\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Claude\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fcommits?author=claude\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\n本项目遵循 [all-contributors](https:\u002F\u002Fgithub.com\u002Fall-contributors\u002Fall-contributors) 规范。欢迎任何形式的贡献！","# Rainbow is All You Need 快速上手指南\n\n本教程旨在通过循序渐进的方式，带你从基础的 DQN 算法一步步实现到强大的 Rainbow 算法。每个章节都包含理论背景介绍和面向对象的代码实现。你可以直接选择感兴趣的主题进行学习，无需本地配置即可在云端运行。\n\n## 环境准备\n\n本项目基于 Python 开发，使用 `mise` 进行版本管理，并依赖 `marimo` 交互式笔记本环境。\n\n**系统要求：**\n- 操作系统：Linux \u002F macOS \u002F Windows (WSL 推荐)\n- 网络环境：需能访问 GitHub 和 PyPI（国内用户建议配置镜像加速）\n- 工具：`git`, `curl`, `make`\n\n## 安装步骤\n\n### 1. 安装 mise 版本管理器\n首先安装 `mise`，用于统一管理 Python 版本和依赖。\n\n```bash\ncurl https:\u002F\u002Fmise.run | sh\n```\n\n> **国内用户提示**：如果下载速度慢，可尝试使用代理或检查网络设置。\n\n### 2. 克隆项目代码\n将仓库克隆到本地并进入项目目录：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need.git\ncd rainbow-is-all-you-need\n```\n\n> **加速方案**：国内用户可使用 Gitee 镜像（如有）或通过 `git clone https:\u002F\u002Fghproxy.com\u002Fhttps:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need.git` 加速克隆。\n\n### 3. 初始化环境与安装依赖\n使用项目提供的 `Makefile` 一键完成 Python 环境创建、虚拟环境构建及包安装：\n\n```bash\nmake init\nmake setup\n```\n\n此过程会自动安装合适的 Python 版本、创建虚拟环境并安装所有必要的 Python 包（如 PyTorch, Gym 等）。\n\n## 基本使用\n\n本项目包含 9 个核心教程章节，从 DQN 到 Rainbow IQN。你可以随时运行任意一个笔记本来学习或实验。\n\n### 运行单个教程\n使用 `make` 命令指定要运行的笔记本文件（例如运行第一章 DQN）：\n\n```bash\nmake run notebook=01_dqn.py\n```\n\n执行后，系统将启动 `marimo` 交互式界面。你可以在浏览器中查看代码、理论解释，并直接修改参数运行实验。\n\n### 可用教程列表\n| 序号 | 主题 | 文件名 |\n| :--- | :--- | :--- |\n| 01 | DQN | `01_dqn.py` |\n| 02 | Double DQN | `02_double_q.py` |\n| 03 | 优先经验回放 (PER) | `03_per.py` |\n| 04 | Dueling Network | `04_dueling.py` |\n| 05 | Noisy Net | `05_noisy_net.py` |\n| 06 | Categorical DQN | `06_categorical_dqn.py` |\n| 07 | N-step Learning | `07_n_step_learning.py` |\n| 08 | Rainbow (整合版) | `08_rainbow.py` |\n| 09 | Rainbow IQN | `09_rainbow_iqn.py` |\n\n只需将上述命令中的 `01_dqn.py` 替换为对应的文件名即可切换学习内容。\n\n### 云端运行（免安装）\n如果你不想在本地安装环境，可以直接点击项目 README 中各章节对应的 **\"Preview\"** 链接，然后在打开的页面中点击 **\"Run in molab\"**，即可在云端浏览器中直接编辑和运行代码。","某高校强化学习实验室的研究员正带领团队复现经典的 Rainbow DQN 算法，以优化自动驾驶仿真环境中的决策模型。\n\n### 没有 rainbow-is-all-you-need 时\n- **理论到代码的鸿沟巨大**：团队成员需分别阅读 8 篇不同的原始论文，再手动拼凑代码，常因对数学公式理解偏差导致实现错误。\n- **环境配置耗时费力**：本地搭建依赖复杂的深度学习环境，不同成员的配置差异导致“在我机器上能跑”的复现难题频发。\n- **模块化验证困难**：无法单独测试双 Q 网络（Double DQN）或优先经验回放（PER）等单一改进组件的效果，调试如同盲人摸象。\n- **协作效率低下**：传统的 Jupyter Notebook 难以进行 Git 版本管理，代码合并冲突频繁，实验记录混乱不堪。\n\n### 使用 rainbow-is-all-you-need 后\n- **循序渐进的实战教程**：直接跟随从 DQN 到 Rainbow 的 9 个章节，每章兼具理论背景与面向对象代码，无需反复查阅原始论文即可掌握核心逻辑。\n- **云端一键运行**：利用 molab 直接在浏览器中交互式运行代码，彻底消除本地环境配置负担，确保所有成员实验环境完全一致。\n- **组件化解耦学习**：可独立运行 `03_per.py` 或 `05_noisy_net.py` 等单文件，快速验证特定算法改进对模型性能的具体贡献。\n- **工程化协作体验**：基于 marimo 构建的纯 Python 脚本支持标准的 Git 差分对比，实验过程可追溯、可复现，大幅提升团队协作效率。\n\nrainbow-is-all-you-need 将晦涩的学术理论转化为可交互、模块化的工程实践，让研究人员从繁琐的环境搭建和代码纠错中解放出来，专注于算法核心的创新与优化。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCurt-Park_rainbow-is-all-you-need_47f0e690.png","Curt-Park","Jinwoo Park (Curt)","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FCurt-Park_beac21b7.jpg","A domain-independent problem-solver",null,"www.jwpark.co.kr@gmail.com","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fcurt-park\u002F","https:\u002F\u002Fgithub.com\u002FCurt-Park",[81,85],{"name":82,"color":83,"percentage":84},"Python","#3572A5",99.9,{"name":86,"color":87,"percentage":88},"Makefile","#427819",0.1,2018,352,"2026-04-09T07:12:07","MIT","未说明",{"notes":95,"python":96,"dependencies":97},"该项目是一个从 DQN 到 Rainbow 的强化学习教程。推荐使用云环境 molab 直接运行，无需本地配置。本地运行需先安装 mise 版本管理工具，然后使用 make 命令初始化环境和运行笔记本。","未说明 (通过 mise 管理)",[98,99],"marimo","mise",[14],[102,103,104,105,106,107,108],"pytorch","reinforcement-learning","dqn","rainbow","gym-environment","colab-notebook","nbviewer","2026-03-27T02:49:30.150509","2026-04-10T11:29:19.244784",[112,117,122,127,132,137],{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},27623,"训练过程中出现 'AssertionError: priority > 0' 错误或损失值为 NaN 怎么办？","这通常是因为计算出的优先级包含 NaN 或负值。解决方案是在计算分布（dist）后添加裁剪操作以避免 NaN。具体代码修改为：`dist = dist.clamp(min=1e-3)`。这能确保数值稳定性，防止后续计算中出现非法值。","https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fissues\u002F17",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},27624,"如何高效地保存和压缩优先经验回放缓冲区（Prioritized Replay Buffer）？","为了获得更高效的压缩效果，建议将 `SegmentTree` 类中的 `self.tree` 类型从 `list` 改为 `np.ndarray`，然后使用 `numpy.savez_compressed` 进行保存。相比 pickle 保存产生的巨大文件（如 21GB），这种方法可以将文件大小显著降低（例如至 350MB），且只保存实际使用的内存元素。","https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fissues\u002F49",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},27625,"为什么 Rainbow DQN 实现中的 V_min 和 V_max 设置为 0 和 200，而不是常见的 -10 和 10？","V_min 和 V_max 的设定取决于环境的回报（Return）尺度。不同的环境有不同的奖励信号范围，因此需要根据具体环境的累积奖励预期来调整这两个参数。建议参考 OpenAI Spinning Up 文档中关于 'Reward and Return' 的定义，根据目标环境的实际奖励规模来设定合适的值。","https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fissues\u002F50",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},27626,"遇到 'ValueError: The truth value of an array with more than one element is ambiguous' 错误如何解决？","这通常是因为导入了错误的模块。请检查是否引入了同名但逻辑不同的 `segment_tree` 模块。本仓库使用的 `segment_tree.py` 在第 65 行有特定的逻辑实现。请确保导入的是本项目路径下的正确模块，而不是其他库中同名的文件。","https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fissues\u002F45",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},27627,"Double DQN 代码中同时出现 max 和 argmax 是否是冗余的？","是的，如果在已经使用 argmax 获取动作索引的情况下再次对整个 Q 值取 max，可能是冗余或笔误。在标准的 Double DQN 实现中，应使用目标网络计算 argmax 对应的动作，再用当前网络评估该动作的 Q 值，避免重复的最大值操作导致逻辑混淆。维护者已确认并修复了相关文档或代码中的此类问题。","https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fissues\u002F25",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},27628,"如何在项目中添加贡献者名单？","可以通过在项目 Issue 中评论 `@all-contributors please add @用户名 for 贡献类型`（例如 code, doc, bug 等）来自动添加贡献者。系统会自动创建 Pull Request 更新贡献者列表。例如：`@all-contributors please add @MrSyee for code`。","https:\u002F\u002Fgithub.com\u002FCurt-Park\u002Frainbow-is-all-you-need\u002Fissues\u002F1",[]]