使用openAI gym渲染时获得奇怪的输出

时间:2018-02-04 07:36:31

标签: python machine-learning reinforcement-learning openai-gym

我编写了一个简单的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

3 个答案:

答案 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)

你期待一个gui吗?如果是这种情况,则必须在调用mode函数时提及env.render()。通过设置mode=human,您可以在gui模式下调用渲染功能。如果这不起作用,那就意味着环境没有gui。