건조젤리의 저장소

2-2. Playing OpenAI GYM Games 본문

공부 기록/모두를 위한 딥러닝 (RL)

2-2. Playing OpenAI GYM Games

건조젤리 2019. 11. 18. 14:14

김성훈 교수님의 강의내용을 정리한 내용입니다.

출처 : http://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io


 

파이썬에서 키 입력을 받아오기 위해 _Getch() 클래스를 만들고,

Gym에서 사용하는 매크로를 설정한다.

그리고 각각의 매크로와 키를 연결해주자.

 

* 높은 버전에서는 문제가 생긴다고 한다! -> 맨 밑의 코드를 참고하자

 

 

액션값을 넣어준 다음 .render()를 통해 확인하자.

실행을 하게 되면 위와 같이 실행이 가능하다.

액션값을 넣어주게 되면 4개의 출력값을 얻을 수 있게 된다.

 


기존 코드는 문제가 발생하므로 이 코드를 사용하세요!

 

구현 코드 (환경: ubuntu:16.04 python 3.6)

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
32
33
34
35
36
37
38
import gym
from gym.envs.registration import register
import readchar 
import colorama as cr
 
cr.init(autoreset=True)
gym.envs.registration.register(id='FrozenLake-v3',
entry_point='gym.envs.toy_text:FrozenLakeEnv', kwargs={'map_name':'4x4''is_slippery':False})
 
env = gym.make('FrozenLake-v3')
env.render()
 
LEFT = 0
DOWN = 1
RIGHT = 2
UP = 3
 
arrow_keys = {
    '\x1b[A' : UP,
    '\x1b[B' : DOWN,
    '\x1b[C' : RIGHT,
    '\x1b[D' : LEFT
}
 
while True:
    key = readchar.readkey()
    if key not in arrow_keys.keys():
        print("Game aborted!")
        break
 
    action = arrow_keys[key]
    state, reward, done, info = env.step(action)
    env.render()
    print("State: ", state, "Action: ", action, "Reward: ", reward, "Info: ", info)
 
    if done:
        print("Finished with reward", reward)
        break
cs

 

'공부 기록 > 모두를 위한 딥러닝 (RL)' 카테고리의 다른 글

4-1. Q-learning  (0) 2019.11.19
3-2. Dummy Q-learning 구현  (0) 2019.11.18
3-1. Dummy Q-learning  (0) 2019.11.18
2-1. Playing OpenAI GYM Games  (0) 2019.11.18
1. Reinforcement learning  (0) 2019.11.18
Comments