列出openai gym中的所有环境id

List all environment id in openai gym

如何在 openai gym 中列出所有当前注册的 环境 ID(因为它们用于创建环境)?

一些上下文:安装了许多具有惯用 ID 的插件,例如 atari、超级马里奥、doom 等。

不要与 atari-py 的游戏名称混淆。

使用envs.registry.all():

from gym import envs
print(envs.registry.all())

输出:

dict_values([EnvSpec(Copy-v0), EnvSpec(RepeatCopy-v0), EnvSpec(ReversedAddition-v0), EnvSpec(ReversedAddition3-v0), EnvSpec(DuplicatedInput-v0), EnvSpec(Reverse-v0), EnvSpec(CartPole-v0), ...])

这是 returns 大量 EnvSpec 对象的集合,而不是您所要求的具体 ID。你可以得到这样的东西:

from gym import envs
all_envs = envs.registry.all()
env_ids = [env_spec.id for env_spec in all_envs]
print(sorted(env_ids))

输出:

['Acrobot-v1', 'Ant-v2', 'Ant-v3', 'BipedalWalker-v3', 'BipedalWalkerHardcore-v3', 'Blackjack-v1', 'CarRacing-v0', 'CartPole-v0', 'CartPole-v1', ...]

您可以使用此代码列出 gym 中的所有环境:

import gym
for i in gym.envs.registry.all():
  print(i.id)