LEC 02
'Frozen Lake'
OpenAI GYM 프레임워크를 사용하면 환경(게임)을 사용할 수 있다.
Frozen Lake : {F : Frozen Lake H : 구멍 G : Goal} 로 이루어진 맵 위를 움직이는 게임
Agent 의 action(상하좌우 이동)에 따라서 state(좌표), reward(Goal 도착시, 보상)를 반환해준다.
LAB 02
- Windows 10 'Frozen Lake' Code
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
import tensorflow as tf
import gym
from gym.envs.registration import register
import msvcrt
import readchar
import colorama as cr
cr.init(autoreset=True)
#MACROS
LEFT = 0
DOWN = 1
RIGHT = 2
UP = 3
arrow_keys = {
'\x1b[A' : UP,
'\x1b[B' : DOWN,
'\x1b[C' : RIGHT,
'\x1b[D' : LEFT
}
env_dict = gym.envs.registry.env_specs.copy()
for env in env_dict:
if'FrozenLake-v3' in env:
del gym.envs.registry.env_specs[env]
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() # 환경을 화면으로 출력
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) # 움직임에 따른 return값
env.render() # 화면 출력
print("State:", state, "Action", action, "Reward:", reward, "Info:", info)
if done: #도착 시 게임 종료
print("Finished with reward", reward)
break
|
cs |
- WindowS 10 기준 문제 해결
1) [41m,[0m과 같은 색상값이 같이 표기되어 map 첫 줄이 이상하게 나옴.
해결 : 아래 코드 추가
import colorama as cr
cr.init(autoreset=True)
(관련 문제)
stackoverflow.com/questions/48605843/getting-a-strange-output-when-using-openai-gym-render
2) 기존 코드 사용하면 키보드 입력 안받아짐
해결 : readchar 설치
pip install readchar #설치
key = readchar.readkey()
3) Error 'Cannot re-register id: FrozenLake-v3 '
해결 : 아래 코드 추가
env_dict = gym.envs.registry.env_specs.copy()
for env in env_dict:
if 'FrozenLake-v3' in env:
del gym.envs.registry.env_specs[env]
(관련 문제)
stackoverflow.com/questions/61281918/custom-environments-for-gym-error-cannot-re-register-id
Reference:
[1] http://hunkim.github.io/ml/
[2] Lecture 2
[3] Lab2
'ML&DL > Sung Kim's RL Lecture' 카테고리의 다른 글
LEC 06. Q-Network (0) | 2021.01.08 |
---|---|
LEC 05. Q-learning on Nondeterministic Worlds! (0) | 2021.01.08 |
LEC 04. Q-learning (table) (0) | 2021.01.07 |
LEC 03. Dummy Q-learning (table) (0) | 2021.01.07 |
Lec 01. RL Introduction (0) | 2021.01.06 |