• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

action을 매 episode마다 출력하기위해서는 어떻게 해야하나요?

22.02.26 19:58 작성 조회수 111

0

안녕하십니까 수강생입니다. 

 

강의로 아주 많은 도움을 받고 있습니다.

 

현재 제 자신만의 env를 만들어 실제로 적용하는 단계입니다.

 

제 env는 action discrete가 9이며 state는 3인 상황입니다.

env길이는 총 100이고 

episode는 500번으로 학습시켰습니다.

cartpole처럼 떨어지면 True로 바뀌는 조건은 없습니다.

또한 렌더링이 필요없는 환경이며 단순히 행동으로 나오는 데이터가 출력일 뿐입니다.

바람직한 데이터의 크기에 도달할 때 까지 학습을 진행시켰습니다.

보통 학습이 진행될 때는 episode, moving_avg, rewards_avg 세 개뿐만이 출력으로 보여지고 있습니다.

 

모델 학습이 끝난 뒤, 실제로 학습이 된 모델로 env를 실행시켰을때, 

학습한 모델을 토대로 행동하는 action을 보려고 합니다. 

그리고 그 action으로 나온 state를 보고 싶습니다.

 

예를 들어 

 

episode: 1, actions : [0,0,0,1,1,1,2,2,2,3,3,3,3,~,8,8,8,8], states : [ 100, 50, 25]

action의 갯수는 총 100개 -> env 길이가 100이기 때문

(이유 : actions discrete가 9이면 action은 0~8까지의 행동을 취함, state는 3이기 때문에 3개의 값을 보여줌)

 

이렇게 관찰하고싶습니다. 

 

어떻게 해야할지 전혀 모르겠어서 도와주실 수 있으실까요?

답변 1

답변을 작성해보세요.

0

안녕하세요 김유석님

수강해주셔서 감사합니다.

제공해드린 소스 중 cartpole_run.ipynb 파일을 참조하시면 됩니다.

해당 파일은 저장된 모델을 로딩해서 실제로 env를 실행하는 기능을 제공합니다.

다음과 같이 코드를 추가하시면 원하시는 로그를 확인할 수 있습니다.

감사합니다.

---------------------------------------------------------------------------

Q = model.predict(state_t)

action = np.argmax(Q)

 

state_next, reword, done, none = env.step(action)

print("action:{} state_next:{}".format(action, state_next ))<<<<< 추가

reword_tot += reword

state = state_next

---------------------------------------------------------------------------