首页 > 其他分享 >利用离散世界模型掌握 Atari Dreamer github 强化学习

利用离散世界模型掌握 Atari Dreamer github 强化学习

时间:2025-01-18 12:30:12浏览次数:3  
标签:dreamerv2 github atari 训练 DreamerV2 -- logdir Atari Dreamer

利用离散世界模型掌握 Atari

在 TensorFlow 2 中实现DreamerV2代理。包含全部 55 款游戏的训练曲线。

如果您发现此代码有用,请在您的论文中引用:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>@article{hafner2020dreamerv2,
  title={Mastering Atari with Discrete World Models},
  author={Hafner, Danijar and Lillicrap, Timothy and Norouzi, Mohammad and Ba, Jimmy},
  journal={arXiv preprint arXiv:2010.02193},
  year={2020}
}
</code></span></span></span></span>

方法

DreamerV2 是第一个在 Atari 基准上达到人类水平表现的世界模型代理。在使用相同数量的经验和计算的情况下,DreamerV2 的最终表现也优于顶级无模型代理 Rainbow 和 IQN。此存储库中的实现在训练世界模型、训练策略和收集经验之间交替进行,并在单个 GPU 上运行。

DreamerV2 直接从高维输入图像中学习环境模型。为此,它使用紧凑的学习状态进行预测。这些状态由确定性部分和几个采样的分类变量组成。这些分类的先验是通过 KL 损失学习的。世界模型是通过直通梯度端到端学习的,这意味着密度的梯度被设置为样本的梯度。

演员评论家学习

DreamerV2 从潜在状态的想象轨迹中学习参与者和评论家网络。轨迹从之前遇到的序列的编码状态开始。然后,世界模型使用选定的动作及其学习到的状态进行预测。评论家使用时间差异学习进行训练,参与者通过强化和直通梯度进行训练以最大化价值函数。

更多信息:

使用包

在新的环境中运行 DreamerV2 的最简单方法是通过 安装包pip3 install dreamerv2。代码会自动检测环境是使用离散动作还是连续动作。以下是在 MiniGrid 环境中训练 DreamerV2 的使用示例:

import gym
import gym_minigrid
import dreamerv2.api as dv2

config = dv2.defaults.update({
    'logdir': '~/logdir/minigrid',
    'log_every': 1e3,
    'train_every': 10,
    'prefill': 1e5,
    'actor_ent': 3e-3,
    'loss_scales.kl': 1.0,
    'discount': 0.99,
}).parse_flags()

env = gym.make('MiniGrid-DoorKey-6x6-v0')
env = gym_minigrid.wrappers.RGBImgPartialObsWrapper(env)
dv2.train(env, config)

手动说明

要修改 DreamerV2 代理,请克隆存储库并按照以下说明操作。如果您不想在系统上安装依赖项,还有一个 Dockerfile 可用。

获取依赖项:

pip3 install tensorflow==2.6.0 tensorflow_probability ruamel.yaml 'gym[atari]' dm_control

在 Atari 上训练:

python3 dreamerv2/train.py --logdir ~/logdir/atari_pong/dreamerv2/1 \
  --configs atari --task atari_pong

在 DM 控制上进行训练:

python3 dreamerv2/train.py --logdir ~/logdir/dmc_walker_walk/dreamerv2/1 \
  --configs dmc_vision --task dmc_walker_walk

监测结果:

tensorboard --logdir ~/logdir

生成图表:

python3 common/plot.py --indir ~/logdir --outdir ~/plots \
  --xaxis step --yaxis eval_return --bins 1e6

Docker 说明

Dockerfile可让您运行 DreamerV2  而无需在系统中安装其依赖项。这要求您设置具有 GPU 访问权限的 Docker。

检查你的设置:

docker run -it --rm --gpus all tensorflow/tensorflow:2.4.2-gpu nvidia-smi

在 Atari 上训练:

docker build -t dreamerv2 .
docker run -it --rm --gpus all -v ~/logdir:/logdir dreamerv2 \
  python3 dreamerv2/train.py --logdir /logdir/atari_pong/dreamerv2/1 \
    --configs atari --task atari_pong

在 DM 控制上进行训练:

docker build -t dreamerv2 . --build-arg MUJOCO_KEY="$(cat ~/.mujoco/mjkey.txt)"
docker run -it --rm --gpus all -v ~/logdir:/logdir dreamerv2 \
  python3 dreamerv2/train.py --logdir /logdir/dmc_walker_walk/dreamerv2/1 \
    --configs dmc_vision --task dmc_walker_walk

尖端

  • 高效调试。您可以使用debug如下配置--configs atari debug。这会减少批处理大小、增加评估频率并禁用tf.function图形编译,以便于逐行调试。

  • 无限梯度范数。这是正常的,在混合精度指南中的损失缩放下进行了描述。您可以通过传递 --precision 32给训练脚本来禁用混合精度。混合精度更快,但原则上会导致数值不稳定。

  • 访问记录的指标。指标以 TensorBoard 和 JSON 行格式存储。您可以直接使用 加载它们pandas.read_json()。绘图脚本还将多次运行的分箱和聚合指标存储到单个 JSON 文件中,以便于手动绘图。

标签:dreamerv2,github,atari,训练,DreamerV2,--,logdir,Atari,Dreamer
From: https://blog.csdn.net/sinat_37574187/article/details/145114286

相关文章

  • 2025年01月17日Github流行趋势
    项目名称:MiniCPM-o项目地址url:https://github.com/OpenBMB/MiniCPM-o项目语言:Python历史star数:14181今日star数:371项目维护者:yiranyyu,iceflame89,yaoyuanTHU,LDLINGLINGLING,tc-mb项目简介:MiniCPM-o2.6:一个支持视觉、语音和多模式直播的GPT-4o级别大型语言模型......
  • 博客搭建 — GitHub Pages 部署
    关于GitHubPagesGitHubPages是一项静态站点托管服务,它直接从GitHub上的仓库获取HTML、CSS和JavaScript文件,通过构建过程运行文件,然后发布网站。本文最终效果是搭建出一个域名为https://<user>.github.io的网站创建GitHubPages站点仓库输入仓库名称,必须命......
  • 使用jsdelivr加速hexo github pages博客的静态资源
    目录使用介绍LoadanyGitHubrelease,commit,orbranch:Loadexactversion:Useaversionrangeinsteadofanexactversion(onlyworkswithvalidsemverversions):使用hexo将博客部署在githubpages上面,有时候访问速度会比较慢,可以将图片等静态资源,使用jsdelivr进行cd......
  • 使用docsify搭建github pages页面
    目录初始化相关配置index.htmlreadme.md_sidebar.mddocsify可以快速帮你生成文档网站。不同于GitBook、Hexo的地方是它不会生成静态的.html文件,所有转换工作都是在运行时。如果你想要开始使用它,只需要创建一个index.html就可以开始编写文档并直接部署在GitHubPages。......
  • GitHub打不开的解决方案
    在国内github官网经常面临打不开或访问极慢的问题,那有什么好办法解决GitHub官网访问不了的问题?今天来教你几招轻松访问github官网。首先我们说下github官网打不开的原因到底是什么。我们会发现,github偶尔可以打开,偶尔打不开,能不能打开似乎全靠运气,其实这都是因为你访问github......
  • vscode使用github.211014
    1,vscode打开terminal,生成RSA密钥,并查看蜜月PSD:\\code\\SQL>gitinitReinitializedexistingGitrepositoryinD:/code/SQL/.git/PSD:\\code\\SQL\>gitconfig--globaluser.nameamadeusPSD:\\code\\SQL\>gitconfig--globaluser.emailvegas......
  • 开箱你的 AI 语音女友「GitHub 热点速览」
    随着大模型API服务的不断丰富,开发者无需再依赖昂贵的硬件,也能轻松开发出拥有强大AI能力的应用。这不仅降低了技术门槛,也激发了极客们的创造力。就比如上周飙升1.5kStar的开源项目xiaozhi-esp32,仅用低成本的ESP32开发板和LLMAPI服务,就能制作出一个聪明有趣、......
  • 盘点 GitHub 上可用的微信抢红包插件:原理、项目与安全建议
    快过年了,给大家盘点写好玩的,很多小伙伴应该需要的。我们首选github,GitHub作为全球最大的开源社区,自然也汇聚了不少微信抢红包相关的项目。本篇博客将盘点目前在GitHub上能够找到的部分微信抢红包插件或脚本,介绍其主要原理、使用门槛与风险,为有兴趣了解该领域的读者提供参考......
  • github Desktop小白下载与汉化教程
    GitHubDesktop是一款由GitHub官方推出的图形化工具,旨在简化Git和GitHub的使用流程,特别适合不熟悉命令行的用户。它支持仓库的克隆、创建和管理,方便进行分支操作(如创建、切换和合并分支),并提供了直观的界面来提交、撤销和同步更改。此外,GitHubDesktop还能帮助用户创建......
  • 2025年01月13日Github流行趋势
    1.项目名称:Jobs_Applier_AI_Agent项目地址url:https://github.com/feder-cr/Jobs_Applier_AI_Agent项目语言:Python历史star数:25929今日star数:401项目维护者:surapuramakhil,feder-cr,cjbbb,sarob,thomHayner项目简介:Jobs_Applier_AI_Agent旨在通过自动化求职申请过程来......