'I'm getting an error with env rendering - env.render()
I was trying to implement Atari Games while rendering I get an error as given below:
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.
Screenshot of the complete error I get is attached here.
My code is given below:
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()
There is a similar post in stack overflow where in the solution given was:
pip install pyglet==1.2.4
Unfortunately this didn't work for me either.
Solution 1:[1]
I have figured it out by myself.
The solution was to just change the environment that we are working by updating render_mode='human' in env:
env = gym.make('SpaceInvaders-v0', render_mode='human')
Full code:
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()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | desertnaut |
