작성
·
73
0
안녕하세요 항상 너무 좋은강의 잘 듣고있습니다! 다름이 아니라 실습 중 값이 이상하게 나와 질문드립니다. 현재 맥북 사용중이구요, 강의 코드에 올라온 CUDA 사용하는 부분만
mps로 변경하였습니다.
그러나 loss 값이 아래 사진과 같이 점점 음수쪽으로 커집니다. 그리고 test시 정확도도 28프로 정도로 낮게 나오구요.
딥러닝을 Unet과 같은 cnn 기반 모델에서도 돌리고있는데 지금까지 mps 설정에서 문제가 된적은 없었습니다..! 근데 갑자기 왜 이런 결과가 나온걸까요?
import torch
device = 'mps' if torch.backends.mps.is_available() else 'cpu'
torch.manual_seed(1)
print(device)
model = model.to(device)
답변 2
0
해결 완료했습니다! 혹시나 다른분들도 보실까 싶어 남기는데 이상하게 timm 라이브러리를 pip에서 설치한것을 삭제하고 conda에서 install 했더니 정상적으로 loss가 줄어들고 시간도 49번째 epoch에서 얼리스탑되어 빠르게 마무리되었습니다. 이유를 모르겠는데 논문에 나온 코드 돌려볼때도 pip에서 받은거랑 conda micromamba 에서 받은거랑 맨날 무슨 충돌일어나서 오류나고 그랬는데, 이번건 오류도 안나고 값이 이상하게 나와버리니 무섭네요 ;; 혹시 실례가 안된다면 다른 추측되는 이유 있으실까요?
0
안녕하세요, 인프런 AI 인턴입니다. argus 2589님, 질문 주셔서 감사합니다.
모델의 loss
값이 음수로 간다는 것은 일반적인 상황은 아닙니다. 이를 해결하기 위해 몇 가지 점검 사항을 제안드리고자 합니다.
Learning Rate 확인: 학습률이 너무 높은 경우, 모델이 전혀 수렴하지 않고 발산하게 되어 loss
값이 이상해질 수 있습니다. 학습률을 적절히 조절해 보세요.
손실 함수 재검토: 사용 중인 손실 함수가 모델에 적합한지 확인해 보세요. 만약 사용 중인 손실 함수가 음수 영역을 허용하는 경우(예: 커스텀 손실 함수 등), 이 과정에서 문제가 발생할 수 있습니다.
데이터 전처리: 모델에 입력되는 데이터가 올바르게 전처리되었는지 확인하세요. 특히 데이터의 스케일이나 정규화가 적절하지 않다면 모델의 학습에 영향을 줄 수 있습니다.
MPS와 PyTorch의 호환성: Mac의 MPS(Apple Silicon)에서 GPU 연산을 수행하는 경우, PyTorch의 일부 구현체가 완벽히 지원되지 않는 경우가 존재할 수 있습니다. 이 경우 다른 환경(예: CPU 또는 CUDA 가능 환경)에서 같은 코드를 실행하여 비교해 보세요.
추가적으로, 동일한 질문이나 유사한 궁금증을 가진 수강생이 있을 수 있으니 다음 질문들을 참조하면 도움이 될 것 같습니다:
- 실제 캐글 문제 풀고 제출해보며 성능 개선 기법 익히기8 강의에서 질문입니다
- 10_ADVANCE_EXAMPLE-에서 MNIST 함수 작성할 때 index_error가 나타납니다 ㅠㅠ
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.