在TF-Agents Environments 的 tensorflow 文档中,有一个简单(受二十一点启发)纸牌游戏的环境示例。
初始化如下所示:
class CardGameEnv(py_environment.PyEnvironment):
def __init__(self):
self._action_spec = array_spec.BoundedArraySpec(
shape=(), dtype=np.int32, minimum=0, maximum=1, name='action')
self._observation_spec = array_spec.BoundedArraySpec(
shape=(1,), dtype=np.int32, minimum=0, name='observation')
self._state = 0
self._episode_ended = False
动作规范只允许 0(不要求卡片)或 1(要求卡片),因此形状是shape=()
(只需要一个整数)是明智的。
但是我不太明白观察规范的形状是shape=(1,)
,因为它只代表当前回合中牌的总和(所以也是一个整数)。
什么解释了形状的差异?