• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

여러 Area를 동시에 학습

23.03.07 21:31 작성 조회수 441

0

안녕하세요,

Drone 강의 부분에서, Area를 GridWorld에서 했던 것처럼 여러 Area를 복사하여 한 씬에 넣고 동시에 학습시키면 step이 빨리 오르는 효과를 볼 수 있을 것 같다고 생각했습니다.

한 area를 여러 개 복사한 뒤에 학습을 진행하려 했는데, 다음과 같은 오류로 잘 되지 않았습니다.

어떻게 해결해 볼 수 있을까요?

 

critic_loss = F.mse_loss(target_q, q)

Traceback (most recent call last):

File "DDPG.py", line 240, in <module>

actor_loss, critic_loss = agent.train_model()

File "DDPG.py", line 144, in train_model

reward = np.stack([b[2] for b in batch], axis=0)

File "<__array_function__ internals>", line 6, in stack

File "C:\Users\anaconda3\envs\mlagent2\lib\site-packages\numpy\core\shape_base.py", line 426, in stack

raise ValueError('all input arrays must have the same shape')

ValueError: all input arrays must have the same shape

 

답변 1

답변을 작성해보세요.

2

안녕하세요!

여러 학습 환경을 구성해서 사용하시는 경우 다수의 관측 정보가 환경에서 파이썬 코드로 넘어오고 파이썬에서도 다수의 행동 정보를 유니티 환경으로 보내야합니다!

이에 따라 기존 코드를 사용하시면 여러 상태가 한꺼번에 넘어온 상태라 입력의 크기가 맞지 않을 것 같습니다! 요 내용은 분산 학습이라 저희가 제작 중인 응용편에서 다룰 예정인데요!

이 코드가 저희가 응용편에서 다룰 분산학습이 적용된 PPO 코드인데 이 내용 참고해보시면 분산 환경처리를 어떻게 할 수 있는지 참고하실 수 있을 것 같습니다!

https://github.com/reinforcement-learning-kr/Unity_ML_Agents_2.0/blob/main/agents/99.ppo_random_params.py

윤원준님의 프로필

윤원준

질문자

2023.03.09

살펴보고 이해가 안 가는 부분이 있다면 다시 질문 남기겠습니다. 감사합니다!