작성
·
130
0
아래와 같이 에러가 발생하는데 원인을 못찾겠습니다. 도움 좀 부탁드립니다.
github에 있는 DQN.py를 실행하였습니다.
10 Episode / Step: 152 / Score: -0.34 / Loss: nan / Epsilon: 1.0000
20 Episode / Step: 332 / Score: -0.57 / Loss: nan / Epsilon: 1.0000
30 Episode / Step: 455 / Score: -0.51 / Loss: nan / Epsilon: 1.0000
40 Episode / Step: 754 / Score: 0.01 / Loss: nan / Epsilon: 1.0000
50 Episode / Step: 1010 / Score: 0.15 / Loss: nan / Epsilon: 1.0000
60 Episode / Step: 1169 / Score: 0.25 / Loss: nan / Epsilon: 1.0000
70 Episode / Step: 1376 / Score: 0.20 / Loss: nan / Epsilon: 1.0000
80 Episode / Step: 1616 / Score: -0.33 / Loss: nan / Epsilon: 1.0000
90 Episode / Step: 1863 / Score: -0.04 / Loss: nan / Epsilon: 1.0000
100 Episode / Step: 2091 / Score: -0.02 / Loss: nan / Epsilon: 1.0000
... Save Model to ./saved_models/GridWorld/DQN/20240821214516/ckpt ...
110 Episode / Step: 2316 / Score: -0.12 / Loss: nan / Epsilon: 1.0000
120 Episode / Step: 2568 / Score: -0.34 / Loss: nan / Epsilon: 1.0000
130 Episode / Step: 2755 / Score: -0.78 / Loss: nan / Epsilon: 1.0000
140 Episode / Step: 2910 / Score: 0.06 / Loss: nan / Epsilon: 1.0000
150 Episode / Step: 3190 / Score: -0.27 / Loss: nan / Epsilon: 1.0000
160 Episode / Step: 3484 / Score: -0.48 / Loss: nan / Epsilon: 1.0000
170 Episode / Step: 3752 / Score: -0.56 / Loss: nan / Epsilon: 1.0000
180 Episode / Step: 3920 / Score: -0.76 / Loss: nan / Epsilon: 1.0000
190 Episode / Step: 4142 / Score: 0.19 / Loss: nan / Epsilon: 1.0000
200 Episode / Step: 4467 / Score: -0.42 / Loss: nan / Epsilon: 1.0000
... Save Model to ./saved_models/GridWorld/DQN/20240821214516/ckpt ...
210 Episode / Step: 4771 / Score: -0.30 / Loss: nan / Epsilon: 1.0000
Traceback (most recent call last):
File "/Users/neweins/Projects/project_unity/ml-agents/build/GridWorld/ref.py", line 224, in <module>
loss = agent.train_model()
File "/Users/neweins/Projects/project_unity/ml-agents/build/GridWorld/ref.py", line 141, in train_model
q = (self.network(state) * one_hot_action).sum(1, keepdims=True)
File "/opt/homebrew/Caskroom/miniforge/base/envs/mlagents/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1553, in wrappedcall_impl
return self._call_impl(*args, **kwargs)
File "/opt/homebrew/Caskroom/miniforge/base/envs/mlagents/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1562, in callimpl
return forward_call(*args, **kwargs)
File "/Users/neweins/Projects/project_unity/ml-agents/build/GridWorld/ref.py", line 83, in forward
x = F.relu(self.conv1(x))
File "/opt/homebrew/Caskroom/miniforge/base/envs/mlagents/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1553, in wrappedcall_impl
return self._call_impl(*args, **kwargs)
File "/opt/homebrew/Caskroom/miniforge/base/envs/mlagents/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1562, in callimpl
return forward_call(*args, **kwargs)
File "/opt/homebrew/Caskroom/miniforge/base/envs/mlagents/lib/python3.10/site-packages/torch/nn/modules/conv.py", line 458, in forward
return self._conv_forward(input, self.weight, self.bias)
File "/opt/homebrew/Caskroom/miniforge/base/envs/mlagents/lib/python3.10/site-packages/torch/nn/modules/conv.py", line 454, in convforward
return F.conv2d(input, weight, bias, self.stride,
RuntimeError: Given groups=1, weight of size [32, 6, 8, 8], expected input[32, 168, 3, 64] to have 6 channels, but got 168 channels instead
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. Joongkeun Lee님, 제출하신 DQN 실행 오류 관련하여 도움을 드리기 위해 비슷한 문제를 겪은 다른 학습자의 질문과 그에 대한 답변을 참고한 내용을 아래와 같이 제공합니다.
오류의 원인으로 보입니다. 에러 메시지에 따르면, 입력 데이터의 채널 수가 예상과 달라 문제가 발생한 것으로 보입니다. 구체적으로, 모델이 6개의 입력 채널을 기대했으나 실제로는 168개의 채널을 받았다는 점에서 오류가 발생했습니다. 일반적으로, 이러한 문제는 데이터 전처리 과정에서 입력 데이터의 형태를 올바르게 조정하지 못했을 때 발생할 수 있습니다.
비슷한 문제에 대한 기존의 답변은 다음 링크에서 확인하실 수 있습니다:
- DQN 환경 학습에서는 비슷한 문제를 다루고 있으며, 특히 입력 데이터의 형상과 관련된 문제에 대해 설명하고 있습니다.
위의 답변에서 해결책을 찾을 수는 있는데, 주요 포인트는 입력 데이터의 형태를 모델이 예상하는 형태로 맞춰주는 것입니다. 이 경우, 데이터의 채널 수를 조정해야 할 필요가 있습니다. PyTorch를 사용한다면, torch.view
나 torch.reshape
와 같은 함수를 사용하여 입력 데이터의 형태를 조정할 수 있습니다.
또한, 콘볼루션 네트워크의 첫 번째 콘볼루션 레이어(conv1)에 대한 입력 차원과 관련해서 문제가 있을 때는, 네트워크 정의 부분에서 입력 데이터의 형태를 올바르게 설정하는 것이 중요합니다. 이와 관련하여 모델 구조를 재검토하고 필요한 경우 수정하는 것을 권장합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
안녕하세요! 학습에 들어가면서 에러가 발생하는 듯 합니다!
오류 내용을 보니 이미지 입력과 네트워크에서 해당 이미지 입력을 처리하는 차원이 달라 발생하는 문제인 듯 합니다!
유니티 환경에서 이미지 입력의 설정과 파이썬 코드상에서 state_size를 어떻게 설정하셨는지 확인해보시면 좋을 것 같습니다!
입력으로 사용되는 이미지 정보를 출력해보셔도 좋을 것 같습니다!
유니티가 문제라면 제가 만든 app말고 github의 gridworld.app으로 해보고 싶은데 실행에러가 납니다.
별도로 다시 제공이 가능하실까요?
(맥 환경에서 진행하고 있습니다.)
설치 버전은 아래와 같습니다.
전에도 아래 링크와 같이 올려주신 것과 비슷한 오류가 있으셨던 분이 있었는데 해결이 잘 안되긴 했습니다! ㅜㅜㅜㅜ
https://www.inflearn.com/community/questions/1298425/dqn-%ED%99%98%EA%B2%BD-%ED%95%99%EC%8A%B5
이 문제와 동일하다면 설정은 잘 되었는데 문제가 발생하는 이상한 상황이었습니다!
이분도 ML Agents 버전이 3.0이었고 Unity 6 Preview를 사용했던 것으로 확인했습니다.
보통 이런 경우는 유니티 자체나 ML-Agents 자체의 문제인 경우가 많아서 버전을 강의 버전과 유사하게 변경해보시는 것을 추천드립니다!
유니티가 문제라면 제가 만든 app말고 github의 gridworld.app으로 해보고 싶은데 실행에러가 납니다.
별도로 다시 제공이 가능하실까요?
(맥 환경에서 진행하고 있습니다.)
제공해주시는 github 코드를 받아서 아무 수정 없이 바로 실행해보았는데 해당 에러가 발생합니다.