Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로그래머스 파이썬
- 금융문자분석경진대회
- Docker
- 맥북
- 더현대서울 맛집
- 캐치카페
- Real or Not? NLP with Disaster Tweets
- hackerrank
- ChatGPT
- AI 경진대회
- ubuntu
- Git
- 데이콘
- 우분투
- 편스토랑 우승상품
- leetcode
- programmers
- dacon
- 자연어처리
- 코로나19
- Baekjoon
- gs25
- SW Expert Academy
- 파이썬
- github
- 편스토랑
- PYTHON
- 프로그래머스
- 백준
- Kaggle
Archives
- Today
- Total
솜씨좋은장씨
Google Colab에서 OpenAI gym render 사용하는 방법! 본문
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
정상적으로 동작하는 것을 볼 수 있습니다.
그럼! 즐거운 개발하세요~
읽어주셔서 감사합니다.
'머신러닝 | 딥러닝 > 강화학습' 카테고리의 다른 글
Google Colab에서 OpenAI SpaceInvaders-Atari2600 오류 없이 실행하는 방법! (0) | 2021.06.07 |
---|
Comments