在健身房环境中渲染时出错

问题描述 投票:0回答:1

我正在尝试为一个 RL 项目工作,我需要在某个 Atari 环境中测试这些想法,我选择 Pong 来测试最初的想法。为了方便起见,我使用 stable-baselines3 1.6.2 版。我的健身房版本是 0.21.0。但是在调用 env.render 时出现以下错误

Exception has occurred: TypeError       (note: full exception trace is shown but execution is paused at: _run_module_as_main)
render() takes 1 positional argument but 2 were given
  File "/home/s222147455/.conda/envs/new_method/lib/python3.8/site-packages/gym/core.py", line 295, in render
    return self.env.render(mode, **kwargs)
  File "/home/s222147455/.conda/envs/new_method/lib/python3.8/site-packages/gym/core.py", line 295, in render
    return self.env.render(mode, **kwargs)
  File "/home/s222147455/.conda/envs/new_method/lib/python3.8/site-packages/gym/core.py", line 295, in render
    return self.env.render(mode, **kwargs)
  [Previous line repeated 4 more times]

健身房图书馆包裹如下,

env = AtariWrapper(gym.make(args.env), noop_max=30, frame_skip=4, screen_size=84, terminal_on_life_loss=True, clip_reward=False)
    env = DummyVecEnv([lambda: env]) 
    env = VecFrameStack(env, n_stack=4, channels_order='first')

我用谷歌搜索了这个问题,发现健身房版本有些不匹配。但我无法完全解决问题

reinforcement-learning openai-gym stable-baselines
1个回答
0
投票

VecFrameStack
不继承它环绕的
render_mode
env
。不知道为什么会这样,但快速破解/解决方法应该有效:

...
env = DummyVecEnv([lambda: env]) 
env = VecFrameStack(env, n_stack=4, channels_order='first')
env.render_mode = "rgb_array"
...
© www.soinside.com 2019 - 2024. All rights reserved.