관리 메뉴

솜씨좋은장씨

Google Colab에서 OpenAI gym render 사용하는 방법! 본문

머신러닝 | 딥러닝/강화학습

Google Colab에서 OpenAI gym render 사용하는 방법!

솜씨좋은장씨 2021. 5. 15. 15:45
728x90
반응형

이번주부터 회사의 동료분과 함께 강화학습에 대해서 공부해보기로 하여 마침! 결제해두고 제대로 활용하지 못하던

Google Colab Pro에서 OpenAI의 gym을 활용해서 여러 예제들을 직접 해보기로 했습니다.

 

유튜브에 나오는 대로 gym을 설치하고 환경을 만들고 이제 실행을 하려고 하는데!

---------------------------------------------------------------------------
NoSuchDisplayException                    Traceback (most recent call last)
<ipython-input-7-c92356761489> in <module>()
      7 
      8     while not done:
----> 9         env.render()
     10         action = random.choice([0, 1])
     11         n_state, reward, done, info = env.step(action)

9 frames
/usr/local/lib/python3.7/dist-packages/pyglet/canvas/xlib.py in __init__(self, name, x_screen)
    121         self._display = xlib.XOpenDisplay(name)
    122         if not self._display:
--> 123             raise NoSuchDisplayException('Cannot connect to "%s"' % name)
    124 
    125         screen_count = xlib.XScreenCount(self._display)

NoSuchDisplayException: Cannot connect to "None"

따란! 위와 같은 오류가 발생했습니다.

 

아마 render를 하고싶은데 gui가 없어서 그런 것 같습니다.

 

이 글에서는 gym.render가 Colab에서 제대로 동작하도록 하는 방법에 대해서 적어보려 합니다.

 

방법

!apt-get install -y xvfb x11-utils
!pip install gym[all]==0.17.* pyvirtualdisplay==0.2.* PyOpenGL==3.1.* PyOpenGL-accelerate==3.1.*

먼저 필요한 라이브러리를 설치합니다.

from pyvirtualdisplay import Display
import matplotlib.pyplot as plt
import random
import gym

그 다음 필요한 라이브러리를 import 해줍니다.

display = Display(visible=False, size=(400, 300))
display.start()

그리고 아까 설치한 pyvirtualdisplay를 활용하여 Display를 하나 생성해줍니다.

 

그런 다음에 다시 아까 오류 났던 코드를 다시 실행해보면!

episodes = 10

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

    while not done:
        env.render()
        action = random.choice([0, 1])
        n_state, reward, done, info = env.step(action)
        score += reward

    print(f"Episode: {episode} Score : {score}")
Episode: 1 Score : 24.0
Episode: 2 Score : 30.0
Episode: 3 Score : 17.0
Episode: 4 Score : 16.0
Episode: 5 Score : 32.0
Episode: 6 Score : 13.0
Episode: 7 Score : 11.0
Episode: 8 Score : 10.0
Episode: 9 Score : 15.0
Episode: 10 Score : 24.0

정상적으로 동작하는 것을 볼 수 있습니다.

 

그럼! 즐거운 개발하세요~

 

읽어주셔서 감사합니다.

Comments