Deep-reinforcement-learning-with-pytorch
Deep-reinforcement-learning-with-pytorch 是一个基于 PyTorch 框架的开源项目,致力于提供经典及前沿深度强化学习算法的清晰代码实现。它涵盖了从基础的 DQN、策略梯度(PG),到先进的 A3C、PPO、SAC、TD3 等多种主流算法,旨在帮助学习者深入理解算法原理与工程细节。
该项目主要解决了强化学习领域代码复现难、参考实现不透明的问题。通过提供结构规范、注释清晰的源码,它让复杂的数学公式转化为可运行的程序,降低了入门门槛,并方便开发者对比不同算法在如 CartPole、MountainCar 及双足行走等标准环境中的表现。此外,项目还整合了 TensorBoard 可视化支持,便于用户直观监控训练过程中的损失变化与智能体行为。
Deep-reinforcement-learning-with-pytorch 特别适合人工智能研究人员、算法工程师以及高校学生使用。对于希望从零开始掌握强化学习,或需要快速验证新想法的开发者而言,这是一个极佳的学习库和实验基准。虽然项目目前处于活跃开发阶段,可能伴随版本迭代带来的调整,但其持续更新的特性确保了技术内容的时效性,是探索智能决策系统不可多得的实用资源。
使用场景
某机器人初创公司的算法工程师正在为双足行走机器人开发平衡控制系统,需要快速验证多种深度强化学习算法在复杂物理环境中的表现。
没有 Deep-reinforcement-learning-with-pytorch 时
- 重复造轮子耗时严重:工程师需从零手写 DQN、PPO、TD3 等算法的基础架构,仅搭建代码框架就耗费数周时间。
- 调试陷阱难以规避:面对稀疏奖励任务(如 MountainCar),缺乏现成的损失函数监控与网络更新参考,难以判断是策略失效还是代码逻辑错误。
- 算法对比成本高昂:想测试不同算法(如从 DDPG 切换到 SAC)的效果,必须重构大量代码,无法在同一框架下公平对比性能。
- 环境配置繁琐易错:手动整合 PyTorch、Gym 和 TensorBoard 时常遇到版本冲突(如 Python 3.7 兼容性问题),导致环境迟迟无法跑通。
使用 Deep-reinforcement-learning-with-pytorch 后
- 开箱即用加速研发:直接调用库中已实现的 TD3 或 PPO 代码,将原本数周的搭建工作缩短至几小时,迅速进入模型调优阶段。
- 直观诊断训练问题:参考库中提供的价值损失(Value Loss)变化图和稀疏奖励处理技巧,快速定位网络不收敛的原因并调整奖励函数。
- 灵活切换算法验证:只需修改少量配置即可在 DQN、A3C、SAC 等十几种算法间无缝切换,高效筛选出最适合双足机器人的控制策略。
- 标准化环境部署:依托清晰的依赖说明和 Anaconda 虚拟环境指南,一次性解决版本兼容问题,确保团队开发环境高度一致。
Deep-reinforcement-learning-with-pytorch 通过提供清晰、全栈的算法实现,将研究人员从繁琐的代码工程中解放出来,使其能专注于策略优化与场景落地。
运行环境要求
- 未说明
未说明
未说明

快速开始
状态: 活跃(正在积极开发中,可能会有破坏性变更)
本仓库将实现经典及最前沿的深度强化学习算法。其目标是提供清晰易懂的 PyTorch 代码,供开发者学习深度强化学习算法。
未来,我们将不断添加更多最先进的算法,并持续维护现有代码。

需求
- Python <=3.6
- tensorboardX
- gym >= 0.10
- PyTorch >= 0.4
请注意,TensorFlow 不支持 Python 3.7。
安装
pip install -r requirements.txt
如果安装失败:
- 安装 gym
pip install gym
- 安装 PyTorch
请前往官方网址进行安装:https://pytorch.org/
建议使用 Anaconda 虚拟环境来管理你的包。
- 安装 tensorboardX
pip install tensorboardX
pip install tensorflow==1.12
- 测试
cd Char10\ TD3/
python TD3_BipedalWalker-v2.py --mode test
如果安装成功,你将看到一个双足行走的机器人。
BipedalWalker:

- 安装 openai-baselines(可选)
# 克隆 openai baselines
git clone https://github.com/openai/baselines.git
cd baselines
pip install -e .
DQN
在这里,我上传了两个 DQN 模型,分别用于训练 CartPole-v0 和 MountainCar-v0。
MountainCar-v0 的提示
这是一个稀疏的二元奖励任务。只有当车到达山顶时,才会获得非零奖励。通常情况下,在随机策略下可能需要 1e5 步才能完成。你可以添加一个奖励项,例如使奖励与当前车辆位置成正比。当然,还有更高级的方法,比如逆向强化学习。

这是 DQN 的价值损失。我们可以看到损失增加到了 1e13,然而网络仍然工作得很好。这是因为随着训练的进行,target_net 和 act_net 之间的差异越来越大,导致计算出的损失累积得非常大。之前的损失较小,是因为奖励非常稀疏,从而导致两个网络的更新幅度也很小。
与 DQN 相关的论文
- 使用深度强化学习玩 Atari 游戏 [arxiv] [代码]
- 带有双重 Q 学习的深度强化学习 [arxiv] [代码]
- 用于深度强化学习的对决网络架构 [arxiv] [代码]
- 优先级经验回放 [arxiv] [代码]
- 用于探索的噪声网络 [arxiv] [代码]
- 强化学习的分布视角 [arxiv] [代码]
- 彩虹:结合深度强化学习的改进 [arxiv] [代码]
- 基于分位数回归的分布强化学习 [arxiv] [代码]
- 分层深度强化学习:整合时间抽象与内在动机 [arxiv] [代码]
- 神经情景控制 [arxiv] [代码]
策略梯度
使用以下命令运行已保存的模型
python Run_Model.py
使用以下命令训练模型
python pytorch_MountainCar-v0.py
policyNet.pkl
这是我训练好的模型。
演员-评论家
这是一种算法框架,经典的 REINFORCE 方法就属于演员-评论家方法。
DDPG
在 Pendulum-v0 中的每集奖励:
PPO
- 原始论文:https://arxiv.org/abs/1707.06347
- OpenAI Baselines 博客文章:https://blog.openai.com/openai-baselines-ppo/
A2C
优势策略梯度,一篇 2017 年的论文指出,A2C 和 A3C 在性能上的差异并不明显。
异步优势演员评论家方法(A3C)自论文发表以来一直具有很大的影响力。该算法结合了几种关键思想:
- 一种基于固定长度经验片段(例如 20 个时间步)的更新机制,利用这些片段来计算回报和优势函数的估计值。
- 策略网络和价值网络共享层的架构。
- 异步更新。
A3C
原始论文:https://arxiv.org/abs/1602.01783
SAC
这并不是论文作者的实现!!!
在 Pendulum-v0 中的每集奖励:

TD3
这并不是论文作者的实现!!!
在 Pendulum-v0 中的每集奖励:
在 BipedalWalker-v2 中的每集奖励:
如果你想测试你的模型:
python TD3_BipedalWalker-v2.py --mode test
与深度强化学习相关的论文
[01] 深度强化学习简述
[02] 连续控制强化学习中的Beta策略
[03] 使用深度强化学习玩Atari游戏
[04] 基于双重Q-learning的深度强化学习
[05] 用于深度强化学习的决斗网络架构
[06] 深度强化学习中的连续控制
[07] 基于模型加速的连续深度Q-learning
[08] 深度强化学习的异步方法
[09] 信任域策略优化
[10] 近端策略优化算法
[11] 利用克罗内克分解近似法的可扩展信任域深度强化学习方法
[12] 使用广义优势估计进行高维连续控制
[13] 软演员-评论家:带有随机演员的离策略最大熵深度强化学习
[14] 解决演员-评论家方法中的函数逼近误差
待办事项
- DDPG
- SAC
- TD3
最佳强化学习课程
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器