[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-nikhilbarhate99--PPO-PyTorch":3,"tool-nikhilbarhate99--PPO-PyTorch":64},[4,17,27,35,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[13,14,15,43],"视频",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":23,"last_commit_at":50,"category_tags":51,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":23,"last_commit_at":58,"category_tags":59,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,60,43,61,15,62,26,13,63],"数据工具","插件","其他","音频",{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":76,"owner_website":81,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":23,"env_os":92,"env_gpu":93,"env_ram":92,"env_deps":94,"category_tags":104,"github_topics":105,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":117,"updated_at":118,"faqs":119,"releases":150},4143,"nikhilbarhate99\u002FPPO-PyTorch","PPO-PyTorch","Minimal implementation of clipped objective Proximal Policy Optimization (PPO) in PyTorch","PPO-PyTorch 是一个基于 PyTorch 框架编写的极简版近端策略优化（PPO）算法实现，专为 OpenAI Gym 强化学习环境设计。它旨在通过精简的代码结构，帮助初学者轻松理解 PPO 算法的核心原理与训练流程，有效降低了强化学习领域的入门门槛。\n\n该工具解决了主流 PPO 实现往往代码复杂、难以拆解学习的问题，同时兼顾了实用性，支持离散和连续动作空间，并适用于从简单到复杂的各类环境。其独特的技术亮点包括：采用线性衰减的动作标准差以提升复杂环境下的训练稳定性；支持为演员（Actor）和评论家（Critic）网络设置不同的学习率；内置完整的日志记录、数据可视化绘图以及生成训练过程 GIF 的实用工具。此外，项目还提供了整合所有功能的 Google Colab 笔记本，让用户无需配置本地环境即可直接运行实验。\n\nPPO-PyTorch 非常适合强化学习初学者、高校学生以及希望快速验证想法的研究人员使用。对于想要深入探究算法细节的开发者而言，清晰的单线程代码结构也是极佳的参考范本。虽然它在某些高级特性上未做极致优化，但凭借简洁性与功能性之间的良好平衡，成为了学习与实践 PPO ","PPO-PyTorch 是一个基于 PyTorch 框架编写的极简版近端策略优化（PPO）算法实现，专为 OpenAI Gym 强化学习环境设计。它旨在通过精简的代码结构，帮助初学者轻松理解 PPO 算法的核心原理与训练流程，有效降低了强化学习领域的入门门槛。\n\n该工具解决了主流 PPO 实现往往代码复杂、难以拆解学习的问题，同时兼顾了实用性，支持离散和连续动作空间，并适用于从简单到复杂的各类环境。其独特的技术亮点包括：采用线性衰减的动作标准差以提升复杂环境下的训练稳定性；支持为演员（Actor）和评论家（Critic）网络设置不同的学习率；内置完整的日志记录、数据可视化绘图以及生成训练过程 GIF 的实用工具。此外，项目还提供了整合所有功能的 Google Colab 笔记本，让用户无需配置本地环境即可直接运行实验。\n\nPPO-PyTorch 非常适合强化学习初学者、高校学生以及希望快速验证想法的研究人员使用。对于想要深入探究算法细节的开发者而言，清晰的单线程代码结构也是极佳的参考范本。虽然它在某些高级特性上未做极致优化，但凭借简洁性与功能性之间的良好平衡，成为了学习与实践 PPO 算法的理想起点。","# PPO-PyTorch\n\n### UPDATE [April 2021] : \n\n- merged discrete and continuous algorithms\n- added linear decaying for the continuous action space `action_std`; to make training more stable for complex environments\n- added different learning rates for actor and critic\n- episodes, timesteps and rewards are now logged in `.csv` files\n- utils to plot graphs from log files\n- utils to test and make gifs from preTrained networks\n- `PPO_colab.ipynb` combining all the files to train \u002F test \u002F plot graphs \u002F make gifs on google colab in a convenient jupyter-notebook\n\n#### [Open `PPO_colab.ipynb` in Google Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fblob\u002Fmaster\u002FPPO_colab.ipynb) [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fblob\u002Fmaster\u002FPPO_colab.ipynb)\n\n\n## Introduction\n\nThis repository provides a Minimal PyTorch implementation of Proximal Policy Optimization (PPO) with clipped objective for OpenAI gym environments. It is primarily intended for beginners in [Reinforcement Learning](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FReinforcement_learning) for understanding the PPO algorithm. It can still be used for complex environments but may require some hyperparameter-tuning or changes in the code. A concise explaination of PPO algorithm can be found [here](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F46422845\u002Fwhat-is-the-way-to-understand-proximal-policy-optimization-algorithm-in-rl) and a thorough explaination of all the details for implementing best performing PPO can be found [here](https:\u002F\u002Ficlr-blog-track.github.io\u002F2022\u002F03\u002F25\u002Fppo-implementation-details\u002F) (All are not implemented in this repo yet). \n\n\nTo keep the training procedure simple : \n  - It has a **constant standard deviation** for the output action distribution (**multivariate normal with diagonal covariance matrix**) for the continuous environments, i.e. it is a hyperparameter and NOT a trainable parameter. However, it is **linearly decayed**. (action_std significantly affects performance)\n  - It uses simple **monte-carlo estimate** for calculating advantages and NOT Generalized Advantage Estimate (check out the OpenAI spinning up implementation for that).\n  - It is a **single threaded implementation**, i.e. only one worker collects experience. [One of the older forks](https:\u002F\u002Fgithub.com\u002Frhklite\u002FParallel-PPO-PyTorch) of this repository has been modified to have Parallel workers\n\n## Usage\n\n- To train a new network : run `train.py`\n- To test a preTrained network : run `test.py`\n- To plot graphs using log files : run `plot_graph.py`\n- To save images for gif and make gif using a preTrained network : run `make_gif.py`\n- All parameters and hyperparamters to control training \u002F testing \u002F graphs \u002F gifs are in their respective `.py` file\n- `PPO_colab.ipynb` combines all the files in a jupyter-notebook\n- All the **hyperparameters used for training (preTrained) policies are listed** in the [`README.md` in PPO_preTrained directory](https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Ftree\u002Fmaster\u002FPPO_preTrained)\n\n#### Note :\n  - if the environment runs on CPU, use CPU as device for faster training. Box-2d and Roboschool run on CPU and training them on GPU device will be significantly slower because the data will be moved between CPU and GPU often\n\n## Citing \n\nPlease use this bibtex if you want to cite this repository in your publications :\n\n    @misc{pytorch_minimal_ppo,\n        author = {Barhate, Nikhil},\n        title = {Minimal PyTorch Implementation of Proximal Policy Optimization},\n        year = {2021},\n        publisher = {GitHub},\n        journal = {GitHub repository},\n        howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch}},\n    }\n\n## Results\n\n| PPO Continuous RoboschoolHalfCheetah-v1  | PPO Continuous RoboschoolHalfCheetah-v1 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_e20035976568.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_06067f43e218.png) |\n\n\n| PPO Continuous RoboschoolHopper-v1  | PPO Continuous RoboschoolHopper-v1 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_2d6f761cb687.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_adb86c20b36c.png) |\n\n\n| PPO Continuous RoboschoolWalker2d-v1  | PPO Continuous RoboschoolWalker2d-v1 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_0aa2e5340405.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_cc77d4d4947e.png) |\n\n\n| PPO Continuous BipedalWalker-v2  | PPO Continuous BipedalWalker-v2 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_306b76041058.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_b3c8e52bc30b.png) |\n\n\n| PPO Discrete CartPole-v1  | PPO Discrete CartPole-v1 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_7a95635e0fd9.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_ace2c978bc82.png) |\n\n\n| PPO Discrete LunarLander-v2  | PPO Discrete LunarLander-v2 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_0a1250eee9e9.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_d2efa86c3454.png) |\n\n\n## Dependencies\nTrained and Tested on:\n```\nPython 3\nPyTorch\nNumPy\ngym\n```\nTraining Environments \n```\nBox-2d\nRoboschool\npybullet\n```\nGraphs and gifs\n```\npandas\nmatplotlib\nPillow\n```\n\n\n## References\n\n- [PPO paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1707.06347)\n- [OpenAI Spinning up](https:\u002F\u002Fspinningup.openai.com\u002Fen\u002Flatest\u002F)\n\n\n","# PPO-PyTorch\n\n### 更新 [2021年4月]：\n\n- 合并了离散动作和连续动作的算法\n- 为连续动作空间的 `action_std` 添加了线性衰减，以使复杂环境下的训练更加稳定\n- 为策略网络和价值网络分别设置了不同的学习率\n- 现在将每集、时间步和奖励记录到 `.csv` 文件中\n- 提供了从日志文件中绘制图表的工具\n- 提供了测试预训练网络并生成 GIF 动画的工具\n- `PPO_colab.ipynb` 将所有文件整合在一起，在 Google Colab 的便捷 Jupyter Notebook 中完成训练、测试、绘制图表和生成 GIF 动画。\n\n#### [在 Google Colab 中打开 `PPO_colab.ipynb`](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fblob\u002Fmaster\u002FPPO_colab.ipynb) [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fblob\u002Fmaster\u002FPPO_colab.ipynb)\n\n\n## 引言\n\n本仓库提供了针对 OpenAI Gym 环境的近端策略优化（PPO）算法的最小化 PyTorch 实现，采用截断目标函数。它主要面向强化学习初学者，帮助理解 PPO 算法。尽管如此，该实现也可用于复杂环境，但可能需要进行超参数调优或代码修改。关于 PPO 算法的简要说明可以参见[这里](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F46422845\u002Fwhat-is-the-way-to-understand-proximal-policy-optimization-algorithm-in-rl)，而关于如何实现最佳性能 PPO 的详细解释则可参考[这里](https:\u002F\u002Ficlr-blog-track.github.io\u002F2022\u002F03\u002F25\u002Fppo-implementation-details\u002F)（目前本仓库尚未完全实现这些内容）。\n\n\n\n为了简化训练过程：\n- 对于连续动作环境，输出动作分布具有**恒定的标准差**（即对角协方差矩阵的多元正态分布），这是一个超参数而非可训练参数。不过，该标准差会**线性衰减**。（`action_std` 对性能影响显著）\n- 使用简单的**蒙特卡洛估计**来计算优势，而不是广义优势估计（GAE）。有关 GAE 的实现可以参考 OpenAI Spinning Up 的实现。\n- 这是一个**单线程实现**，即只有一个工作进程收集经验数据。本仓库的一个较早的分支[此处](https:\u002F\u002Fgithub.com\u002Frhklite\u002FParallel-PPO-PyTorch)已被修改为支持多线程并行工作。\n\n## 使用方法\n\n- 训练新网络：运行 `train.py`\n- 测试预训练网络：运行 `test.py`\n- 使用日志文件绘制图表：运行 `plot_graph.py`\n- 保存图像以制作 GIF 并使用预训练网络生成 GIF：运行 `make_gif.py`\n- 所有用于控制训练、测试、图表和 GIF 的参数及超参数均位于各自的 `.py` 文件中。\n- `PPO_colab.ipynb` 将所有文件整合在一个 Jupyter Notebook 中。\n- 所有用于训练（预训练）策略的**超参数均已列出**，详见[PPO_preTrained 目录下的 README.md](https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Ftree\u002Fmaster\u002FPPO_preTrained)。\n\n#### 注意事项：\n- 如果环境运行在 CPU 上，请使用 CPU 作为设备以加快训练速度。Box2D 和 Roboschool 均运行在 CPU 上，若将其放在 GPU 设备上训练，由于数据需要频繁地在 CPU 和 GPU 之间传输，训练速度将会显著变慢。\n\n## 引用\n\n如果您希望在论文或其他出版物中引用本仓库，请使用以下 BibTeX 格式：\n\n    @misc{pytorch_minimal_ppo,\n        author = {Barhate, Nikhil},\n        title = {Minimal PyTorch Implementation of Proximal Policy Optimization},\n        year = {2021},\n        publisher = {GitHub},\n        journal = {GitHub repository},\n        howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch}},\n    }\n\n## 结果\n\n| PPO 连续动作 RoboschoolHalfCheetah-v1  | PPO 运动学模拟器 RoboschoolHalfCheetah-v1 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_e20035976568.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_06067f43e218.png) |\n\n\n| PPO 连续动作 RoboschoolHopper-v1  | PPO 连续动作 RoboschoolHopper-v1 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_2d6f761cb687.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_adb86c20b36c.png) |\n\n\n| PPO 连续动作 RoboschoolWalker2d-v1  | PPO 连续动作 RoboschoolWalker2d-v1 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_0aa2e5340405.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_cc77d4d4947e.png) |\n\n\n| PPO 连续动作 BipedalWalker-v2  | PPO 连续动作 BipedalWalker-v2 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_306b76041058.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_b3c8e52bc30b.png) |\n\n\n| PPO 离散动作 CartPole-v1  | PPO 离散动作 CartPole-v1 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_7a95635e0fd9.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_ace2c978bc82.png) |\n\n\n| PPO 离散动作 LunarLander-v2  | PPO 离散动作 LunarLander-v2 |\n| :-------------------------:|:-------------------------: |\n| ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_0a1250eee9e9.gif) |  ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_readme_d2efa86c3454.png) |\n\n\n## 依赖项\n已在以下环境中训练并测试通过：\n```\nPython 3\nPyTorch\nNumPy\ngym\n```\n训练环境：\n```\nBox2D\nRoboschool\nPyBullet\n```\n绘制图表和生成 GIF 动画所需工具：\n```\npandas\nmatplotlib\nPillow\n```\n\n\n## 参考文献\n\n- [PPO 论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1707.06347)\n- [OpenAI Spinning Up](https:\u002F\u002Fspinningup.openai.com\u002Fen\u002Flatest\u002F)","# PPO-PyTorch 快速上手指南\n\nPPO-PyTorch 是一个基于 PyTorch 实现的极简近端策略优化（PPO）算法库，专为强化学习初学者设计，支持 OpenAI Gym 环境下的离散和连续动作空间训练。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：Linux \u002F macOS \u002F Windows\n- **Python 版本**：Python 3.x\n- **硬件建议**：\n  - 对于 `Box-2d` 和 `Roboschool` 环境，建议使用 **CPU** 进行训练（在 GPU 上运行会因数据频繁传输导致显著变慢）。\n  - 其他复杂环境可尝试使用 GPU 加速。\n\n### 前置依赖\n请确保安装以下核心库：\n```bash\npip install torch numpy gym\n```\n\n若需生成训练图表或 GIF 动图，还需安装：\n```bash\npip install pandas matplotlib Pillow\n```\n\n> **国内加速建议**：推荐使用清华或阿里镜像源加速安装：\n> ```bash\n> pip install torch numpy gym -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 安装步骤\n\n1. 克隆仓库到本地：\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch.git\n   cd PPO-PyTorch\n   ```\n\n2. （可选）直接在 Google Colab 中运行，无需本地配置：\n   - 访问 [PPO_colab.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fblob\u002Fmaster\u002FPPO_colab.ipynb)\n\n## 基本使用\n\n### 1. 训练新模型\n运行 `train.py` 开始训练。所有超参数（如学习率、步数等）均在该文件顶部配置。\n```bash\npython train.py\n```\n*训练日志（episodes, timesteps, rewards）将自动保存为 `.csv` 文件。*\n\n### 2. 测试预训练模型\n运行 `test.py` 加载已训练好的策略进行测试。\n```bash\npython test.py\n```\n\n### 3. 可视化结果\n- **绘制训练曲线**：利用生成的日志文件绘制奖励变化图。\n  ```bash\n  python plot_graph.py\n  ```\n- **制作演示 GIF**：录制智能体运行画面并生成 GIF。\n  ```bash\n  python make_gif.py\n  ```\n\n### 4. 一站式体验 (推荐)\n使用 `PPO_colab.ipynb` Jupyter Notebook，它整合了训练、测试、绘图和生成 GIF 的所有功能，适合快速验证和修改代码。","某高校强化学习实验室的研究团队正致力于让机械臂学会精准抓取不同形状的物体，但在算法落地初期遭遇了重重阻碍。\n\n### 没有 PPO-PyTorch 时\n- **入门门槛极高**：团队成员需从零编写复杂的策略梯度更新逻辑，极易在矩阵维度变换和概率分布采样中引入难以排查的 Bug。\n- **调试过程黑盒化**：缺乏内置的日志记录与可视化工具，训练过程中的奖励波动和收敛趋势只能靠手动打印数据，无法直观判断模型是否失效。\n- **环境适配困难**：面对连续动作空间（如机械臂关节角度），手动设计动作标准差的衰减策略非常繁琐，导致训练极不稳定甚至发散。\n- **成果展示耗时**：想要将训练好的策略生成演示视频或 GIF 用于论文汇报，需要额外编写大量渲染和图像保存代码，严重拖慢科研进度。\n\n### 使用 PPO-PyTorch 后\n- **快速验证想法**：直接调用其最小化实现的裁剪目标函数，团队可在几小时内完成从离散到连续动作空间的算法迁移，专注于任务逻辑而非底层数学推导。\n- **训练透明可控**：利用自带的 CSV 日志记录和绘图工具，研究人员能实时分析步数、回合数与奖励曲线，迅速定位超参数问题并调整学习率。\n- **稳定连续控制**：借助内置的线性衰减动作标准差机制，机械臂在复杂环境下的探索更加平滑，显著提升了策略在 Roboschool 等连续控制场景中的收敛稳定性。\n- **一键生成演示**：通过运行 `make_gif.py` 脚本，即可基于预训练网络自动生成高质量的动作演示 GIF，极大简化了实验结果的整理与汇报流程。\n\nPPO-PyTorch 通过提供开箱即用的模块化实现与可视化闭环，将强化学习算法的研发周期从数周缩短至数天，让初学者和研究者能更专注于策略优化本身。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnikhilbarhate99_PPO-PyTorch_05d8fce4.png","nikhilbarhate99","Nikhil Barhate","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fnikhilbarhate99_303d8af6.png","\r\n",null,"nikhilbarhate99.github.io","https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,2330,424,"2026-04-05T20:50:42","MIT","未说明","非必需。README 明确指出若环境（如 Box-2d, Roboschool）在 CPU 上运行，建议使用 CPU 以获得更快的训练速度，因为频繁在 CPU 和 GPU 间传输数据会导致显著变慢。",{"notes":95,"python":96,"dependencies":97},"该工具是面向初学者的 PPO 算法最小化实现，采用单线程模式。对于在 CPU 上运行的环境（如 Box-2d 和 Roboschool），强烈建议使用 CPU 设备进行训练以避免数据传输开销导致的性能下降。支持离散和连续动作空间，其中连续空间的动作标准差为线性衰减的超参数而非可训练参数。","Python 3",[98,99,100,101,102,103],"PyTorch","NumPy","gym","pandas","matplotlib","Pillow",[13],[106,107,108,109,110,111,112,113,114,115,116],"pytorch-implmention","pytorch","pytorch-tutorial","proximal-policy-optimization","reinforcement-learning-algorithms","deep-reinforcement-learning","ppo","policy-gradient","ppo-pytorch","deep-learning","reinforcement-learning","2026-03-27T02:49:30.150509","2026-04-06T12:04:04.568080",[120,125,130,135,140,145],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},18883,"为什么代码中演员网络（Actor Network）的方差是逐渐衰减甚至固定的，而不是由网络预测的？","在实验中作者发现，使用线性衰减的恒定方差更容易训练，其直觉与熵正则化有关。虽然大多数其他实现会让网络预测方差，但当前实现选择固定方差是为了简化训练过程。作者表示未来可能会添加由网络预测方差的功能。","https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fissues\u002F44",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},18884,"你的实现与原论文中关于更新时机（Update Timestep）和采样方式有何不同？是否影响性能？","原论文是在收集 T 个时间步后，从中采样 K 次迷你批次（M）进行更新；而本实现在每 M 个时间步直接更新，且不使用重复采样。这种差异通过运行多个具有不同随机种子的演员实例（并行环境）来弥补，从而获得更多样化的经验以更好地近似期望值。更新时的迷你批次大小 M 不能大于总批次大小（N * T）。","https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fissues\u002F21",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},18885,"为什么我从零开始训练（不使用预训练模型）时，智能体在 LunarLander 环境中无法学习，奖励一直为负？","请确保你运行的是 `PPO.py` 文件进行训练，而不是 `test.py`。`test.py` 仅用于加载和运行已训练好的策略，不具备训练功能。如果正确运行 `PPO.py`，LunarLander 环境通常可以正常训练。","https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fissues\u002F15",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},18886,"将 PPO 应用于自定义环境（如机器人避障）时训练不收敛或奖励很低，可能是什么原因？","PPO 算法单独使用往往不够稳定，通常需要结合标准技巧（如 GAE 优势估计、奖励缩放、观测归一化等）才能有效工作。建议检查是否使用了更稳定的版本（如 April Update），并尝试引入广义优势估计（GAE）来稳定训练。此外，超参数、网络结构或逻辑错误也可能导致问题。","https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fissues\u002F36",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},18887,"在计算优势函数时使用 `state_values.detach()` 的理论依据是什么？这会影响价值网络的更新吗？","`detach()` 会返回一个新的不包含计算图的张量，用于计算优势函数（Advantages = Rewards - Value）。这样做是为了在更新策略网络时，避免梯度回传到价值网络，因为优势函数仅用于策略更新。价值网络的更新是通过后续单独计算的 MSE 损失（不使用 detach）完成的，因此价值层仍会被正常更新。","https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fissues\u002F29",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},18888,"动作网络（Action Layer）和价值网络（Value Layer）是否应该共享部分参数以提高训练效率？","当前实现中两个网络是完全独立的，但共享前几层参数在某些情况下可能有助于提高训练速度和泛化能力。不过，分离设计也有其优势，例如允许两个任务独立优化。是否共享参数取决于具体任务需求，目前代码未采用共享参数结构。","https:\u002F\u002Fgithub.com\u002Fnikhilbarhate99\u002FPPO-PyTorch\u002Fissues\u002F19",[]]