인프런 커뮤니티 질문&답변

jpzz kim님의 프로필 이미지
jpzz kim

작성한 질문수

유니티 머신러닝 에이전트 완전정복 (기초편)

DQN 환경 학습

작성

·

174

0

DQN 환경 학습에서 conv1 레이어로 들어가는 인풋이 [32,168,3,64] 사이즈로 들어가서 에러가 나는 상황입니다. state size를 확인해보니 84가 아닌 168이 계속 인풋으로 들어오는데, 유니티 환경이 잘못된 것일까요?

답변 3

0

민규식님의 프로필 이미지
민규식
지식공유자

음...

사실 mlagents 버전 상관없이 agentRenderTexture 사이즈는 84x64면 visual obs도 (1,3,64,84) 이런식으로 나와야할텐데요..

많이 이상하네요 ㅜㅜㅜ 유니티 버전도 6버전을 써본 적은 없지만 사실 유니티 버전은 별로 상관없을 것으로 생각되구요..

혹시 그럼 해당 agentRenderTexture 크기를 변경하면 파이썬에 전달되는 visual obs 크기도 변할까요?

jpzz kim님의 프로필 이미지
jpzz kim
질문자

지금 agentRenderTexture 사이즈를 2배 키워서 168x128 사이즈로 학습을 돌려보면 state 사이즈는 (1,3,128,336) 이렇게 출력됩니다.

jpzz kim님의 프로필 이미지
jpzz kim
질문자

 

imageimage

민규식님의 프로필 이미지
민규식
지식공유자

바뀌긴 바뀌는군요.? 그럼 혹시 한번 해당 값 원래 크기로 바꾸고 visual obs 한번 렌더링해보실 수 있으실까요?

그래프로 한번 띄워보시면 될 것 같습니다!

jpzz kim님의 프로필 이미지
jpzz kim
질문자

그래프로 출력한다는게 어떤 의미인지 알 수 있을까요?

민규식님의 프로필 이미지
민규식
지식공유자

이제 지금 batch 차원 제외하면 3차원 RGB 이미지 데이터여서 파이썬에서 그림 파일 확인하는것과 동일하게 확인 가능합니다!

Dec.obs에서 나온 관측 차원 확인해보시고 아래 코드는 gpt한테 np array 이미지를 matplotlib으로 시각화하라고 한 코드인데 참고 부탁드려요!

import numpy as np
import matplotlib.pyplot as plt

# Create a sample NumPy array representing image data
# For example, a 100x100 pixel image with random colors
image_data = np.random.rand(100, 100, 3)

# Display the image using Matplotlib
plt.imshow(image_data)
plt.title("Random Image")
plt.axis('off')  # Turn off axis numbers and ticks
plt.show()
jpzz kim님의 프로필 이미지
jpzz kim
질문자

image

원래대로 렌더텍스처 크기로 바꿔서 dec obs shape (1,3,64,128)

아래는 시각화한 이미지입니다.

image

 

민규식님의 프로필 이미지
민규식
지식공유자

음.. 뭔가 살짝 위아래가 잘려보이긴 하지만 잘 나오는 것 같네요..! 설정은 맞게 됐는데 값이 이상하게 나오는 에러는 처음이라 많이 당황스러운데요..!

저희 강의에서 했던 설정과 다른 것은 유니티 버전밖에 없는 듯 하여 해당 버전을 2022 버전 정도로 변경해보시거나 아니면 파이썬에서 visual obs에 대한 state size를 변경하고 학습하셔도 될 것 같습니다!

0

jpzz kim님의 프로필 이미지
jpzz kim
질문자

Screenshot 2024-06-24 at 3.16.09 PM.pngstate shape은 (1,3,64,168)로 출력이 됩니다.

유니티 Vector Observation 파라미터는 다음과 같습니다.

Screenshot 2024-06-24 at 2.58.52 PM.png

민규식님의 프로필 이미지
민규식
지식공유자

음.. 4차원 벡터가 사이즈가 이상한거 봐서는 바로 그 아래있는 Render Texture Sensor의 renderer 설정이 잘못된 것 같습니다! 이 부분은 따로 건드리지 않으셨으면 잘못 설정되지는 않을 것 같은데 이상하네요 ㅜㅜ

혹시 mlagents 유니티 버전 어떤걸 사용하고 계실까요?

jpzz kim님의 프로필 이미지
jpzz kim
질문자

image

agentRenderTexture 사이즈는 84x64로 되어 있습니다.

유니티 버전은 6 preview로 활용하고 있고, mlagent 버전은 이렇게 사용하고 있습니다.

 

image

0

민규식님의 프로필 이미지
민규식
지식공유자

안녕하세요!

말씀주신 내용에 따르면 카메라의 입력의 크기에 문제가 있는 듯 합니다.

혹시 obs의 shape가 어떻게 되는지 체크해보실 수 있으실까요??

해당 shape이 잘못된 경우 유니티 환경의 visual observation, 즉 시각적 관측을 전달하는 설정에 문제가 있는 듯 합니다.

jpzz kim님의 프로필 이미지
jpzz kim
질문자

 

Screenshot 2024-06-24 at 3.16.09 PM.pngstate shape은 (1,3,64,168)로 출력이 됩니다.

유니티 Vector Observation 파라미터는 다음과 같습니다.

Screenshot 2024-06-24 at 2.58.52 PM.png

jpzz kim님의 프로필 이미지
jpzz kim

작성한 질문수

질문하기