我正在尝试为openai-gym“ Blackjack-v0”环境创建Q-Learning代理。我正在尝试获取观察空间的大小,但以“元组”和“离散”对象的形式来表示。
我要返回的是“离散”对象的大小。当我打印“ env.observation_space [0]”时,它返回“ Discrete(32)”。我在github(https://github.com/openai/gym/blob/master/gym/spaces/discrete.py)上找到了该类,但是没有任何内容显示如何返回整数“ 32”或什至说“ env.observation_space [0] [5]”的值。
还有其他函数可以用来返回“离散”对象的大小以及该值本身在某个索引处的大小吗?
以下是一些代码:
print(state_size[0]) # Discrete(32)
# I want it to print 32, not Discrete(32)
print(state_size[1]) # Discrete(11)
# I want it to print 11, not Discrete(11)
print(state_size[2]) # Discrete(2)
# I want it to print 2, not Discrete(2)
print(q_table[state_size[0][0]]) # TypeError: 'Discrete' object does not support indexing
# I want to return the value of the "Discrete" object
答案 0 :(得分:1)
您可以使用离散对象的属性n
。
示例:
env.observation_space[0].n >> 32
答案 1 :(得分:0)
您也可以使用 env 对象的属性 nA。
示例:
env.nA >> 32
env 对象也有属性 nS - 给出状态数。