我在环境渲染中遇到错误 - env.render()

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

我试图在渲染时实现 Atari Games,但出现如下错误:

line 283, in render
    raise error.Error(
gym.error.Error: render(mode='human') is deprecated. Please supply `render_mode` when constructing your environment, e.g., gym.make(ID, render_mode='human'). The new `render_mode` keyword argument supports DPI scaling, audio, and native framerates.

附上我收到的完整错误的屏幕截图here

我的代码如下:

episodes = 5

for episode in range(1, episodes+1):
state = env.reset()
done = False
score = 0 

while not done:
    env.render()
    action = random.choice([0,1,2,3,4,5])
    n_state, reward, done, info = env.step(action)
    score+=reward
print('Episode:{} Score:{}'.format(episode, score))
env.close()

堆栈溢出中有一个类似的帖子,其中给出的解决方案是:

pip install pyglet==1.2.4

不幸的是,这对我来说也不起作用。

python-3.x machine-learning deep-learning openai-gym
2个回答
15
投票

我自己已经弄清楚了。 解决方案是通过更新

render_mode='human'
中的
env
来更改我们正在工作的环境:

env = gym.make('SpaceInvaders-v0', render_mode='human')

完整代码:

 import gym
 import random
 import time
 env = gym.make('SpaceInvaders-v0', render_mode='human')
 height, width, channels = env.observation_space.shape
 actions = env.action_space.n
 env.unwrapped.get_action_meanings()
 episodes = 5
 for episode in range(1, episodes+1):
    state = env.reset()
    done = False
    score = 0 
 while not done:
    time.sleep(0.1)
    action = random.choice([0,1,2,3,4,5])
    n_state, reward, done, info = env.step(action)       
    score+=reward
print('Episode:{} Score:{}'.format(episode, score))
env.close()

0
投票

升级

gym
对我有用:
pip install --upgrade gym

© www.soinside.com 2019 - 2024. All rights reserved.