跳转到主要内容

Minecraft Diamond Env

项目描述

状态: 稳定版

PyPI

Diamond Env

Diamond Env是DreamerV3所使用的Minecraft钻石环境,DreamerV3是第一个不需要人类数据或手动制作课程就能在Minecraft中收集钻石的强化学习算法。我们提出这个环境作为强化学习研究的标准化基准,它比许多流行的现有基准提出了更具挑战性的问题。

Minecraft Diamond Environment

概述

在Diamond Env中,智能体通过稀疏的奖励来完成12个里程碑,以收集钻石,这构成了一个探索挑战。此外,每个回合都在一个独特的随机生成的3D世界中进行,要求智能体进行泛化。

该环境基于MineRL版本0.4.4(提交204130f),这是包含抽象制作动作支持的新版本。我们提供了错误修复和一个标准化的分类动作空间和观察空间,以便更容易比较环境上的算法。

为了在具有类似属性但更容易的环境中开发新算法,您可能会发现Crafter环境很有用。

观察空间

每个观察结果都是一个具有以下键和相应数组dtypes和形状的字典

image:         uint8 (64, 64, 3)
inventory:     float32 (391,)
inventory_max: float32 (391,)
equipped:      float32 (393,)
breath:        float32 ()
health:        float32 ()
hunger:        float32 ()

动作空间

动作空间是一个具有以下25个动作的平坦分类空间

noop, attack turn_up, turn_down, turn_left, turn_right, forward, back, left,
right, jump, place_dirt, craft_planks, craft_stick, craft_crafting_table,
place_crafting_table, craft_wooden_pickaxe, craft_stone_pickaxe,
craft_iron_pickaxe equip_stone_pickaxe, equip_wooden_pickaxe,
equip_iron_pickaxe, craft_furnace, place_furnace, smelt_iron_ingot

奖励函数

奖励函数是稀疏的。以下12个里程碑中的每一个在当前回合中第一次获得物品时都会产生1个奖励。

log, planks, stick, crafting_table, wooden_pickaxe, cobblestone, stone_pickaxe,
iron_ore, furnace, iron_ingot, iron_pickaxe, diamond

此外,智能体每失去一个健康点就会受到-0.01的惩罚,每恢复一个健康点就会获得+0.01的奖励。其他所有时间步的奖励都是0。

达到11.1或更高的回合回报意味着智能体已经完成了所有里程碑,包括收集一个钻石。回合长度限制为36000步,并在智能体死亡时提前终止。

用法

import diamond_env

print('Create')
env = diamond_env.DiamondEnv(restart_on_exception=True)
env = diamond_env.ToGym(env)

print('\nObservations:')
for key, value in env.observation_space.spaces.items():
  print('-', key, value.shape, value.dtype)
print('\nActions:', env.action_space)

print('\nReset')
obs = env.reset()
print(obs.keys())

print('\nStep')
act = env.action_space.sample()
print(act)
obs, reward, done, info = env.step(act)
print(obs.keys(), reward, done)

print('\nClose')
env.close()

安装

在Ubuntu上,您可以通过运行sudo ./install.sh来安装系统依赖项。如果脚本执行失败,请参阅minerllabs/minerl上的安装说明,并安装版本0.4.4(提交204130f)。

之后,安装环境

pip3 install diamond_env

引用

如果您在您的工作中发现这段代码很有用,请考虑引用以下使项目成为可能的工作:

@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}
}

@article{guss2019minerl,
  title={Minerl: A Large-Scale Dataset of Minecraft Demonstrations},
  author={Guss, William H and Houghton, Brandon and Topin, Nicholay and Wang, Phillip and Codel, Cayden and Veloso, Manuela and Salakhutdinov, Ruslan},
  journal={arXiv preprint arXiv:1907.13440},
  year={2019}
}

@inproceedings{johnson2016malmo,
  title={The Malmo Platform for Artificial Intelligence Experimentation.},
  author={Johnson, Matthew and Hofmann, Katja and Hutton, Tim and Bignell, David},
  booktitle={IJCAI},
  pages={4246--4247},
  year={2016}
}

问题

对于问题,请在GitHub上提交问题

项目详情


下载文件

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

源分布

diamond_env-1.0.3.tar.gz (13.0 kB 查看哈希值

由以下提供支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面