通过世界模型掌握多个领域
项目描述
通过世界模型掌握多个领域
是DreamerV3的重新实现,这是一个可扩展的通用强化学习算法,能够以固定的超参数掌握广泛的用途。
如果您觉得这段代码很有用,请在您的论文中引用
@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使用一组固定的超参数掌握广泛的领域,优于专用方法。消除调整的需求减少了应用强化学习所需的专家知识和计算资源。
由于其鲁棒性,DreamerV3显示出有利的扩展属性。值得注意的是,使用更大的模型不仅提高了其最终性能,还提高了其数据效率。增加梯度步数进一步提高了数据效率。
说明
包
如果您只想在自定义环境中运行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版本。
- 您可以使用
small
、medium
、large
配置块来减少内存需求。默认为xlarge
。请参阅上面的缩放图,了解这对性能的影响。 - 包括了许多环境,其中一些需要安装额外的包。请参阅
scripts
中的安装脚本和Dockerfile
以供参考。 - 当在自定义环境中运行时,请确保通过
encoder.mlp_keys
、encode.cnn_keys
、decoder.mlp_keys
和decoder.cnn_keys
指定代理应该使用的观察键。 - 要从环境中记录度量信息而不显示给代理或存储在重放缓冲区中,请以
log_
前缀作为观察键返回它们,并通过run.log_keys_...
选项启用记录。 - 要继续已停止的训练运行,只需再次运行相同的命令行,并确保
--logdir
指向同一目录。
免责声明
此存储库包含基于开源DreamerV2代码库实现的DreamerV3的重新实现。它与Google或DeepMind无关。此实现已测试以在一系列环境中重现官方结果。
项目详情
关闭
dreamerv3-1.5.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 593a5d14473e481377133225d493ae991a6b62aa70cbbac84e3d055ab72d1f55 |
|
MD5 | 7188be090341fb04dbc4e79d64b1235b |
|
BLAKE2b-256 | 5d12dc1dad62858ad2f0ab369289d6b919caa691b021922cf6e1881825e016a1 |