코딩 및 기타

openAI Gym test

정지홍 2024. 12. 16. 11:18

1. 우선 아래 코드를 입력한다.

pip install gym
pip install gym[classic_control]
pip install pygame

 

2. 연습용 코드...

import gym

env = gym.make( 'CartPole-v1' , render_mode='human' )

state = env.reset()[0]
print('상태: ' , state )
print(f'각각 카트위치{state[0]}  카트의 속도 {state[1]}  막대의 각도 {state[2]}  막대의 각속도(회전속도) {state[3]} ')
action_space = env.action_space
print(f'행동의 차원 수 : {action_space}')

출력 결과

 

3. env.step(action)으로 시간을 1단계 지나게 한다. 그러면 총 5개의 정보를 얻을수있다.

  • next_state: 다음 상태
  • reward: 보상 ( float타입의 스칼라 )
    • '카트 폴' 문제에서 균형이 유지되면 항상 1.0이다.
  • terminated: 목표 상태 도달 여부
    • '카트 폴'에서는 막대의 각도가 12도를 초과하거나, 막대가 화면에서 벗어나면 종료된다.
  • truncated: MDP 범위 밖의 종료 조건 충족 여부
  • info: 추가 정보

 

 

5. 예제 코드

  • 행동을 0,1중 무작위로 하나만 선택하니 오래 버티지 못하고 금방 무너짐.
import numpy as np
import gym

env = gym.make('CartPole-v1' , render_mode='human')
state = env.reset()[0]
done = False

while not done:
    env.render()
    action = np.random.choice( [ 0 , 1 ])
    next_state , reward , terminated , truncated , info = env.step( action )
    done = terminated | truncated
env.close()

'코딩 및 기타' 카테고리의 다른 글

ros ubuntu install  (1) 2024.12.30
뉴런의 표현 , 활성화 함수 , 손실 함수 , 경사하강법  (0) 2024.12.18
ProjectFileAppend , ProjectFileAppendProducer  (0) 2024.12.06
강화 학습이란?  (0) 2024.11.25
면접준비  (2) 2024.11.21