- TF-Agents 모듈 임포트하기
- TF-Agents 환경 준비하기
- TF-Agents 환경 살펴보기
- TF-Agents 행동 반영하기
- TF-Agents 환경 Wrapper 사용하기
- TF-Agents 에이전트 구성하기
- TF-Agents 정책 다루기
- TF-Agents 정책 평가하기
- TF-Agents 데이터 수집하기
- TF-Agents 에이전트 훈련하기
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
TF-Agents 행동 반영하기¶
이전 페이지에서는 강화학습 환경 (Environment)과 행동 (Action)의 사양을 확인하는 방법에 대해 소개했습니다.
이번에는 강화학습 환경 (Environment)에 직접 행동 (Action)을 취하고 변화를 확인하는 과정에 대해 소개합니다.
행동 반영하기¶
예제1¶
import tf_agents
from tf_agents.environments import suite_gym
import numpy as np
env_name = 'CartPole-v0'
env = suite_gym.load(env_name)
initial_time_step = env.reset()
print(initial_time_step)
action = np.array(1, dtype=np.int32)
next_time_step = env.step(action)
print(next_time_step)
TimeStep(step_type=array(0, dtype=int32), reward=array(0., dtype=float32), discount=array(1., dtype=float32), observation=array([-0.03466152, 0.01252448, -0.0060912 , 0.00470432], dtype=float32))
TimeStep(step_type=array(1, dtype=int32), reward=array(1., dtype=float32), discount=array(1., dtype=float32), observation=array([-0.03441103, 0.20773326, -0.00599711, -0.2898942 ], dtype=float32))
TF-Agents 환경 살펴보기 페이지에서 환경과 행동의 사양에 대해 확인했습니다.
TF-Agents 강화학습 환경에 행동을 반영하기 위해서 우선 스칼라 정수형의 행동 (action)을 하나 만들었습니다.
(정수 1은 카트를 오른쪽으로 미는 행동을 의미합니다.)
그 다음, env.step() 메서드에 입력합니다.
env.reset() 메서드가 환경을 재설정 (reset)하고, 첫 TimeStep 객체를 반환했다면,
env.step(action)은 환경에 action을 반영한 다음, TimeStep을 반환합니다.
예제2¶
import tf_agents
from tf_agents.environments import suite_gym
import numpy as np
env_name = 'CartPole-v0'
env = suite_gym.load(env_name)
initial_time_step = env.reset()
print(initial_time_step)
action = np.array(1, dtype=np.int32)
for i in range(5):
next_time_step = env.step(action)
print(next_time_step)
TimeStep(step_type=array(0, dtype=int32), reward=array(0., dtype=float32), discount=array(1., dtype=float32), observation=array([ 0.00390162, -0.04929772, 0.03883132, -0.00568977], dtype=float32))
TimeStep(step_type=array(1, dtype=int32), reward=array(1., dtype=float32), discount=array(1., dtype=float32), observation=array([ 0.00291567, 0.14524645, 0.03871752, -0.2858725 ], dtype=float32))
TimeStep(step_type=array(1, dtype=int32), reward=array(1., dtype=float32), discount=array(1., dtype=float32), observation=array([ 0.00582059, 0.33979544, 0.03300007, -0.5660972 ], dtype=float32))
TimeStep(step_type=array(1, dtype=int32), reward=array(1., dtype=float32), discount=array(1., dtype=float32), observation=array([ 0.0126165 , 0.53443927, 0.02167813, -0.8482037 ], dtype=float32))
TimeStep(step_type=array(1, dtype=int32), reward=array(1., dtype=float32), discount=array(1., dtype=float32), observation=array([ 0.02330529, 0.72925895, 0.00471406, -1.1339917 ], dtype=float32))
TimeStep(step_type=array(1, dtype=int32), reward=array(1., dtype=float32), discount=array(1., dtype=float32), observation=array([ 0.03789047, 0.9243189 , -0.01796577, -1.4251924 ], dtype=float32))
이번에는 동일한 행동을 연속해서 다섯번 적용했습니다.
observation 속성의 첫번째 값은 카트의 위치를 의미합니다.
카트의 위치가 매 행동마다 오른쪽으로 이동하고 있음을 알 수 있습니다.
이전글/다음글
이전글 : TF-Agents 환경 살펴보기