我编写了一个简单的python代码来模拟' FrozenLake-v0':
import gym
env = gym.make('FrozenLake-v0')
env.reset()
for _ in range(1000):
env.render()
env.step(env.action_space.sample())
但是我的输出包含一些特殊符号:
[41mS[0mFFF
FHFH
FFFH
HFFG
(Left)
[41mS[0mFFF
FHFH
FFFH
HFFG
(Up)
S[41mF[0mFF
FHFH
FFFH
HFFG
(Down)
SFFF
F[41mH[0mFH
FFFH
HFFG
...
为什么这些符号出现在输出中?
我该如何解决?
编辑:
当我制作环境时,我收到以下警告。我不知道这是否有用:
[33mWARN:gym.spaces.Box自动检测dtype为class' numpy.float32'。 请提供明确的dtype。[0m
答案 0 :(得分:1)
您看到的特殊符号([41m
,[0m
等)是颜色指令(请参阅this question),这使得电路板看起来更好当shell支持它们时。更具体地说,当前代理位置获得红色背景。
查看openai-gym源代码我没有看到任何标记来抑制颜色,所以最好的解决方案是在shell中启用颜色支持,这样这些指令就不会打扰你。例如,在Unix SE上看一下this discussion。
答案 1 :(得分:1)
您可以执行gym.logger.set_level(40)
隐藏警告。这将设置最小级别的记录器消息打印到40.相应地,仅显示错误级别消息。每次导入gym
时都需要包含此语句。
答案 2 :(得分:0)
mode
函数时提及env.render()
。通过设置mode=human
,您可以在gui模式下调用渲染功能。如果这不起作用,那就意味着环境没有gui。