본문 바로가기

강화학습

[Gym] SpaceInvaders 등에서 render 안될 때 해결방법

* gym 0.25.0 버전, 윈도우 환경 기준으로 작성되었습니다.

Gym을 이용할 때, 아타리 게임 중 SpaceInvaders와 같은 게임들은 env.render() 함수로 동작하지 않는 경우가 있다.

이럴 때는 환경을 생성할 때 매개변수로 render_mode='human' 를 넣고 env.render()를 따로 루프에 넣지 않아도 동작하는 게임 화면을 확인 할 수 있다.아래는 예제 코드이다.

import gym

env = gym.make("SpaceInvaders-v4", render_mode='human')
observation, info = env.reset(seed=42, return_info=True)

for _ in range(1000):
   action = env.action_space.sample()
   observation, reward, done, info = env.step(action)
   if done:
      observation, info = env.reset(return_info=True)
      
env.close()

다음과 같이 정상적으로 게임 화면이 뜬다.