TF-Agents 환경 준비하기


TF-Agents - TensorFlow 강화학습 라이브러리

강화학습은 기본적으로 환경 (Environment)과 에이전트 (Agent)의 상호작용을 통해서 이루어집니다.

이 페이지에서는 TF-Agents에서 강화학습의 환경 (Environment)을 준비하는 과정에 대해 소개합니다.



1) 환경 불러오기

예제

import tf_agents
from tf_agents.environments import suite_gym

env_name = 'CartPole-v0'
env = suite_gym.load(env_name)
print(env)

env.reset()
<tf_agents.environments.wrappers.TimeLimit object at 0x7fbdea78e310>

tf_agents.environments.guite_gym 모듈은 Gym 환경을 불러오기 위한 함수의 모음입니다.

load() 함수에 Gym 환경의 이름 ‘CartPole-v0’을 입력하면, 해당하는 환경 (env)을 불러옵니다.

TF-Agents 환경의 reset() 메서드는 환경을 재설정 (reset)하고 TimeStep 객체를 반환합니다.

즉, reset() 메서드가 호출될 때마다 임의의 상태를 갖도록 환경이 초기화됩니다.




2) TimeStep 확인하기

예제1

import tf_agents
from tf_agents.environments import suite_gym

env_name = 'CartPole-v0'
env = suite_gym.load(env_name)

initial_time_step = env.reset()
print(initial_time_step)
<class 'tf_agents.trajectories.time_step.TimeStep'>
TimeStep(step_type=array(0, dtype=int32), reward=array(0., dtype=float32), discount=array(1., dtype=float32), observation=array([ 0.01331848, -0.02692638, -0.02431821,  0.04527872], dtype=float32))

첫번째 TimeStep 객체를 출력했습니다.

TimeStep 객체는 step_type, reward, discount, observation과 같은 속성들을 포함하고 있음을 알 수 있습니다.



예제2

import tf_agents
from tf_agents.environments import suite_gym
import PIL.Image

env_name = 'CartPole-v0'
env = suite_gym.load(env_name)

initial_time_step = env.reset()
print(initial_time_step)

im = PIL.Image.fromarray(env.render())
im.show()
TimeStep(step_type=array(0, dtype=int32), reward=array(0., dtype=float32), discount=array(1., dtype=float32), observation=array([0.00649969, -0.0046049, 0.01843259, 0.04577447], dtype=float32))

render()는 이 환경의 상태를 렌더링해서 볼 수 있도록 합니다.

TimeStep의 observation 속성에 해당하는 상태가 아래와 같은 이미지로 나타납니다.


TF-Agents 환경 준비하기 - TimeStep 확인하기

TF-Agents 환경 준비하기 - TimeStep 확인하기



이전글/다음글