[D+10] Trouble Shooting

siwoo·2023년 11월 17일
0

Pytorch를 사용할 때 다양한 에러와 문제들을 접하게 된다.
자주 나올 수 있는 trouble을 어떻게 해결할 지에 대해 다뤄보고자 한다.

✍ OOM(Out Of Memory)

  • 정의

    • 메모리 부족으로 모델 작동이 되지 않아 생기는 오류
  • 문제점

    • 왜, 어디서 문제가 발생했는지 알기 어려움

    • 메모리의 이전 상황을 파악하기 힘듦

  • 방안

    • batch size를 줄여서 GPU를 clean하게 만든 후 다시 run

    • GPU util이라는 GPU의 상태를 보여주는 모듈을 사용

    • torch.cuda.empty_cache() -> 사용되지 않은 GPU 상 cache를 정리하여 가용 메모리를 확보,
      메모리가 남는 걸 긁어오는 메소드지만 자주 사용하는 것은 좋지 않음

    • 누적되는 1d tensor 객체이면서 계속하여 저장할 필요가 없는 경우(ex. loss),
      파이썬 기본 객체로 변환하여 처리 -> loss.item

    • loop가 끝나도 파이썬은 변수를 저장하기 때문에 del을 사용해서 삭제

    • inference 시점에서는 torch.no_grad()를 사용하여 backward pass를 하여 메모리가 자유로움

👩 회고

  • 코드를 하나하나 뜯어보면서 분석해보고 제로부터 직접 코드를 짜보는 연습이 필요하다!

0개의 댓글