跳转到主要内容

通过世界模型掌握多个领域

项目描述

通过世界模型掌握多个领域

DreamerV3的重新实现,这是一个可扩展的通用强化学习算法,能够以固定的超参数掌握广泛的用途。

DreamerV3 Tasks

如果您觉得这段代码很有用,请在您的论文中引用

@article{hafner2023dreamerv3,
  title={Mastering Diverse Domains through World Models},
  author={Hafner, Danijar and Pasukonis, Jurgis and Ba, Jimmy and Lillicrap, Timothy},
  journal={arXiv preprint arXiv:2301.04104},
  year={2023}
}

了解更多

DreamerV3

DreamerV3从经验中学习世界模型,并使用它来从想象轨迹中训练actor critic策略。世界模型将感官输入编码为类别表示,并根据动作预测未来表示和奖励。

DreamerV3 Method Diagram

DreamerV3使用一组固定的超参数掌握广泛的领域,优于专用方法。消除调整的需求减少了应用强化学习所需的专家知识和计算资源。

DreamerV3 Benchmark Scores

由于其鲁棒性,DreamerV3显示出有利的扩展属性。值得注意的是,使用更大的模型不仅提高了其最终性能,还提高了其数据效率。增加梯度步数进一步提高了数据效率。

DreamerV3 Scaling Behavior

说明

如果您只想在自定义环境中运行DreamerV3,您可以pip install dreamerv3,并将从本存储库复制的example.py作为起点。

Docker

如果您想修改代码,您可以使用包含指令的提供的Dockerfile,或者按照以下手动说明操作。

手动

安装JAX以及其他依赖项

pip install -r requirements.txt

简单的训练脚本

python example.py

灵活的训练脚本

python dreamerv3/train.py \
  --logdir ~/logdir/$(date "+%Y%m%d-%H%M%S") \
  --configs crafter --batch_size 16 --run.train_ratio 32

提示

  • 所有配置选项都列在configs.yaml中,您可以从命令行覆盖它们。
  • 《debug》配置块可以减少网络大小、批量大小、日志之间的持续时间等,以便快速调试(但不会学习到一个好的模型)。
  • 默认情况下,代码会尝试在GPU上运行。您可以使用--jax.platform cpu标志切换到CPU或TPU。请注意,多GPU支持尚未测试。
  • 您可以使用多个配置块来运行,这些配置块将按照指定的顺序覆盖默认设置,例如--configs crafter large
  • 默认情况下,度量信息将打印到终端,追加到JSON行文件中,并以TensorBoard摘要的形式写入。您可以在训练脚本中启用其他输出,如WandB。
  • 如果您遇到“PyTreeDef的叶子太多”错误,这意味着您正在重新加载一个与当前配置不兼容的检查点。这种情况通常是在不小心重新使用旧的日志目录时发生的。
  • 如果您遇到CUDA错误,请向上滚动,因为错误原因通常是一个早期发生的错误,例如内存不足或不兼容的JAX和CUDA版本。
  • 您可以使用smallmediumlarge配置块来减少内存需求。默认为xlarge。请参阅上面的缩放图,了解这对性能的影响。
  • 包括了许多环境,其中一些需要安装额外的包。请参阅scripts中的安装脚本和Dockerfile以供参考。
  • 当在自定义环境中运行时,请确保通过encoder.mlp_keysencode.cnn_keysdecoder.mlp_keysdecoder.cnn_keys指定代理应该使用的观察键。
  • 要从环境中记录度量信息而不显示给代理或存储在重放缓冲区中,请以log_前缀作为观察键返回它们,并通过run.log_keys_...选项启用记录。
  • 要继续已停止的训练运行,只需再次运行相同的命令行,并确保--logdir指向同一目录。

免责声明

此存储库包含基于开源DreamerV2代码库实现的DreamerV3的重新实现。它与Google或DeepMind无关。此实现已测试以在一系列环境中重现官方结果。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

dreamerv3-1.5.0.tar.gz (83.0 kB 查看散列)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面