독학 연구소
공부한 내용을 정리합니다.
OpenAI Gym

OpenAI Gym 

강화학습 알고리즘 테스트를 위한 환경을 제공해주는 라이브러리입니다.

 

 

 

 

설치

파이썬 환경은 pip 를 이용하면 간단하게 설치할 수 있습니다. 

pip install gym

 

 

예제

환경을 불러올 때는 gym.make() 함수를 이용합니다.

 

그리드월드 환경FrozenLake 불러와 상태와 행동 크기를 확인합니다.

import gym

env = gym.make('FrozenLake-v0', is_slippery=False)

print(env.observation_space.n)
print(env.action_space.n)

 

16개의 상태를 가지고 4개의 행동을 취할 수 있습니다.

16
4

 

다음과 같이 에피소드를 반복할 수 있습니다.

for i in range(5):
    state = env.reset()
    done = False
    while not done:
        env.render()
        action = env.action_space.sample()
        state, reward, done, info = env.step(action)
        print(state, reward, done, info)

 

매 에피소드마다 env.reset() 함수를 통해 환경을 초기화하고 해당 에피소드가 종료될 때까지 타임 스텝을 반복합니다. env.action_space.sample() 함수는 해당 환경에서 취할 수 있는 랜덤한 행동을 반환합니다. env.step() 함수는 행동을 받아 다음 스텝의 정보들을 반환합니다.

 

환경으로부터 받는 상태, 보상, 종료 여부, 기타 정보는 다음과 같습니다.

0 0.0 False {'prob': 1.0} 
1 0.0 False {'prob': 1.0} 
2 0.0 False {'prob': 1.0} 
1 0.0 False {'prob': 1.0} 
2 0.0 False {'prob': 1.0} 
2 0.0 False {'prob': 1.0} 
2 0.0 False {'prob': 1.0} 
3 0.0 False {'prob': 1.0} 
7 0.0 True {'prob': 1.0}

 

env.render() 함수를 호출하면 현재 상태를 렌더링합니다.

 

 

 

다음은 CarRacing 이라는 환경입니다.

import gym

env = gym.make("CarRacing-v0")
state = env.reset()

done = False
while not done:
    env.render()
    action = env.action_space.sample()
    state, reward, done, _ = env.step(action)
    print(action, state.shape, reward, done)

env.close()

 

다음과 같은 형태의 연속적인 행동 공간과 이미지에 해당하는 상태 정보를 반환합니다.

[0.81338143 0.07590234 0.50560546] (96, 96, 3) 7.1463768115942035 False 
[-0.46199107 0.23878533 0.3978563 ] (96, 96, 3) -0.09999999999999964 False 
[-0.1199649 0.10941219 0.68902004] (96, 96, 3) -0.09999999999999964 False

 

 

 

  Comments,     Trackbacks