Project Icon

nnabla-rl

深度强化学习库,基于Neural Network Libraries构建

nnabla-rl是基于Neural Network Libraries构建的深度强化学习库,适用于研究、开发和生产环境。该库提供简洁的Python API,集成多种经典和前沿强化学习算法,实现在线与离线训练的灵活切换。nnabla-rl支持通过nnabla-browser可视化训练过程,安装便捷,兼容GPU加速,并提供交互式示例便于快速上手。

许可证 构建状态 文档状态 文档风格 代码风格:black

基于神经网络库构建的深度强化学习库

nnablaRL 是一个基于神经网络库构建的深度强化学习库,旨在用于研究、开发和生产。

安装

安装 nnablaRL 非常简单!

$ pip install nnabla-rl

nnablaRL 仅支持 Python 版本 >= 3.8 和 nnabla 版本 >= 1.17。

启用 GPU 加速(可选)

nnablaRL 算法默认在 CPU 上运行。要在 GPU 上运行算法,首先按如下方式安装 nnabla-ext-cuda。 (根据您机器上安装的 CUDA 版本替换 [cuda-version]。)

$ pip install nnabla-ext-cuda[cuda-version]
# 安装示例。假设您的机器上安装了 CUDA 11.0。
$ pip install nnabla-ext-cuda110

安装 nnabla-ext-cuda 后,通过算法的配置设置要运行的 GPU ID。

import nnabla_rl.algorithms as A

config = A.DQNConfig(gpu_id=0) # 使用 GPU 0。如果为负数,将在 CPU 上运行。
dqn = A.DQN(env, config=config)
...

特性

友好的 API

nnablaRL 具有友好的 Python API,只需 3 行 Python 代码即可开始训练。 (注意:以下代码将在 CPU 上运行。请参阅上述说明以在 GPU 上运行。)

import nnabla_rl.algorithms as A
from nnabla_rl.utils.reproductions import build_classic_control_env

# 先决条件:
# 运行以下命令以启用渲染!
# $ pip install nnabla-rl[render]
env = build_classic_control_env("Pendulum-v1", render=True) # 1
ddpg = A.DDPG(env, config=A.DDPGConfig(start_timesteps=200))  # 2
ddpg.train(env)  # 3

要获取有关 nnablaRL 的更多详细信息,请参阅文档示例

众多内置算法

nnablaRL 实现了大多数著名/最先进的深度强化学习算法,如 DQN、SAC、BCQ、GAIL 等。已实现的算法经过仔细测试和评估。您可以轻松地使用这些经过验证的实现开始训练您的代理。

有关已实现算法的列表,请参见此处

您还可以在此处找到每种算法的复现和评估结果。 请注意,在您的计算机上运行复现代码时,可能无法获得完全相同的结果。结果可能会根据您的机器、nnabla/nnabla-rl 的包版本等略有变化。

在线和离线训练的无缝切换

在强化学习中,有两种主要的训练程序来训练智能体:在线训练和离线训练。

在线训练是一种交替执行数据收集和网络更新的训练程序。相反,离线训习是一种仅使用现有数据更新网络的训练程序。使用nnablaRL,您可以无缝切换这两种训练程序。例如,如下所示,您可以轻松地使用模拟环境在线训练机器人控制器,然后使用真实机器人数据集离线微调它。

import nnabla_rl
import nnabla_rl.algorithms as A

simulator = get_simulator() # 这只是一个示例。假设模拟器存在
dqn = A.DQN(simulator)
# 在线训练100万次迭代
dqn.train_online(simulator, total_iterations=1000000)

real_data = get_real_robot_data() # 这也是一个示例。假设您有真实机器人数据
# 使用真实数据离线微调智能体1万次迭代
dqn.train_offline(real_data, total_iterations=10000)

训练图和训练进度的可视化

nnablaRL支持使用nnabla-browser可视化训练图和训练进度!

import gym

import nnabla_rl.algorithms as A
import nnabla_rl.hooks as H
import nnabla_rl.writers as W
from nnabla_rl.utils.evaluator import EpisodicEvaluator

# 保存训练计算图
training_graph_hook = H.TrainingGraphHook(outdir="test")

# 使用nnabla的Monitor进行评估钩子
eval_env = gym.make("Pendulum-v0")
evaluator = EpisodicEvaluator(run_per_evaluation=10)
evaluation_hook = H.EvaluationHook(
    eval_env,
    evaluator,
    timing=10,
    writer=W.MonitorWriter(outdir="test", file_prefix='evaluation_result'),
)

env = gym.make("Pendulum-v0")
sac = A.SAC(env)
sac.set_hooks([training_graph_hook, evaluation_hook])

sac.train_online(env, total_iterations=100)

训练图可视化

训练状态可视化

入门

尝试以下交互式演示来开始。
您可以直接在Colab上从下表的链接运行它。

标题笔记本目标强化学习任务
入门简单强化学习训练在Colab中打开倒立摆
学习如何使用训练算法在Colab中打开倒立摆
学习如何使用自定义网络模型进行训练在Colab中打开山地车
学习如何使用不同的网络求解器进行训练在Colab中打开倒立摆
学习如何使用不同的回放缓冲区进行训练在Colab中打开倒立摆
学习如何使用自己的环境进行训练在Colab中打开自定义环境
雅达利游戏训练示例在Colab中打开雅达利游戏

文档

完整文档在这里

贡献指南

欢迎对nnablaRL进行任何形式的贡献!详情请参阅贡献指南

许可证

nnablaRL 根据Apache License Version 2.0许可证提供。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号