YOLOv5 학습 도중 겪은 시행착오 정리
Ubuntu 20.04 GUI가 설치된 실물컴퓨터로 yolov5 학습을 시키면서 겪은 시행착오를 정리한 글이다. 비슷한 상황을 겪는 누군가에게 도움이 되길 바란다.
학습 환경: Intel i9-9900KF, GeForce RTX 2070 Mobile, 32GB RAM
1. 학습 전
Nvidia Driver 설치 후 블랙스크린 문제
그래픽 드라이버를 삭제 후 재설치 해주어야 한다. (https://grdnr13.tistory.com/107)
sed: argument list too long 에러
한 번에 너무 많은 파일을 수정하려고 할 때 해당 에러가 발생했다. Xargs를 이용해 해결했다. (https://grdnr13.tistory.com/104)
2. 학습 시작
학습용 파일을 찾지 못함
yaml파일에 있는 경로를 제대로 바꿔주자. train.py 파일이 있는 yolov5폴더를 기준으로 경로를 작성해줘야 한다.
OutOfMemoryError: CUDA out of memory 에러
말 그대로 GPU 메모리가 부족해서 나타나는 에러다. batch 사이즈를 줄여주면 해결가능하다. (batch size는 주로 2의 제곱수를 이용한다)
3. 학습 도중
학습이 강제중단된 경우
python train.py --resume을 이용해 재개가능하다.
epoch당 학습 예상 소요시간이 평소보다 크게(n시간 이상) 산정됨
GPU로 학습되지 않고 있을 확률이 높다. 그래픽 드라이버가 잘 작동중인지 확인해보자. 학습 도중에 모종의 문제로 학습이 강제중단되는 경우 그래픽 드라이버상 문제가 발생해 다음 학습 시 GPU로 학습이 되지 않는 문제가 발생한다고 한다. (학습 중에는 컴퓨터를 끄지 말고 그대로 두는 게 제일 좋다...)
nvidia driver 재설치 후 reboot로 해결했다. 재설치 후에도 잘 되지 않는다면, `nvidia-smi`명령어로 드라이버 상태를 확인해보자. 그래픽 드라이버가 Off로 되어있다면 On으로 바꿔준다.
epoch당 학습 예상 소요시간이 학습 도중 늘어남
그래픽드라이버도 정상적인데 평소엔 20분이던 학습소요시간이 갑자기 3시간이나 늘어났다. 컴퓨터 전원이 빠져서 절전모드로 전환된 것이어서 전원을 꽂으니 돌아왔다.
4. 학습 완료 후
이어서 학습하고 싶은 경우
python train.py 명령어에서 pt파일을 기존 학습 파일로 설정해주면 된다.