python

DataLoader worker is killed by signal: Killed 에러

전자둥이 2021. 11. 4. 09:39
반응형

안녕하세요

 

학습 도중에 갑자기 DataLoader workter (pid) is killed by signal: Killed.

          -> DataLoader workter (pid) exited unexpectedly

라는 에러문구가 발생했습니다. (아래 그림 참조)

 

이런 문제가 왜 생기는지 검색해본 결과 메모리 부족이라는 의견이 많았습니다.

-> 보통 블로그에서는 dataloader에서 num_workers  부분을 0으로 수정해서 사용하라는 대답이 많았습니다.

저의 경우 해당 방법으로는 해결이 되지 않았고 num_workers를 0으로 세팅하면 학습속도가 엄청 느려지기만 했습니다,,

 

전에 사용하던 COCO dataset이나 PASCAL VOCdataset에서는 정상적으로 동작하였던 코드였기에 바뀐거라고는 새로 구해온 데이터셋뿐이었습니다. 그래서 데이터셋을 의심하기 시작했습니다.

 

제가 사용한 데이터셋의 이미지 크기가 유독 용량이 큰 이미지가 많았는데,, 

이렇게 큰 용량의 데이터를 데이터로더에서 처리하다가 메모리부족으로 리눅스 시스템제체에서 종료시킨게 아닌가 라는 생각이 들었습니다.

 

따라서 우선 용량이 큰 이미지는 제외(1000KB이상 이미지) 시키고 batch_size도 32에서 16으로 줄여서 진행해보았습니다. (참고로 현재 컴퓨터 사양 중 RAM는 32GB입니다..)

 

결과적으로 정상적으로 학습이 진행되는 모습이 확인되었습니다.

 

제 추측에 의하면 RAM을 높이거나, 너무 용량이 큰 데이터셋을 학습에 사용하면 안될거 같습니다.

 

이상입니다~ 감사합니다.

 

 

 

 

반응형