我试图在渲染时实现 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.
我的代码如下:
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
不幸的是,这对我来说也不起作用。
我自己已经弄清楚了。 解决方案是通过更新
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()
升级
gym
对我有用:pip install --upgrade gym