在gym
环境中,动作空间通常是一个离散空间,其中每个动作都由一个整数标记。我找不到一种方法来弄清楚动作和数字之间的对应关系。例如,在结冰的湖面上,智能体可以向上、向下、向左或向右移动。代码:
import gym
env = gym.make("FrozenLake-v0")
env.action_space
返回Discrete(4)
,表明有四个动作可用。如果我env.step(0)
,我的代理正在往哪个方向移动?
在gym
环境中,动作空间通常是一个离散空间,其中每个动作都由一个整数标记。我找不到一种方法来弄清楚动作和数字之间的对应关系。例如,在结冰的湖面上,智能体可以向上、向下、向左或向右移动。代码:
import gym
env = gym.make("FrozenLake-v0")
env.action_space
返回Discrete(4)
,表明有四个动作可用。如果我env.step(0)
,我的代理正在往哪个方向移动?
没有办法通过 Gym API 来判断,对于任何基于 RL 的学习代理来说,这完全不重要,离散动作只是任意标签,它们的效果是通过在奖励和状态变化方面的反复试验来学习的。
如果您需要了解,可以阅读每个环境的代码。通常它在注释中被描述,或者作为常量来描述。
例如在 FrozenLake-v0 中,您可以找到以下代码:
LEFT = 0
DOWN = 1
RIGHT = 2
UP = 3
如果我
env.step(0)
,我的代理正在往哪个方向移动?
左,至少根据那些常量名称。