Trouble/Python, Pytorch

RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method

침닦는수건 2023. 2. 8. 17:28
반응형

torch로 학습 코드 작성 중에 제목 혹은 위와 같은 에러가 났다. 

 

오류명에 적혀있듯이, multiprocessing을 사용하고자 하는 과정에 발생하는 에러인데 대놓고 torch.multiprocessing을 사용한 적이 없음에도 오류가 났다. 

 

간단히 찾아보니 대부분 torch DataLoader 클래스 사용 시 num_workers를 지정해서 데이터를 불러올 때 그런다고 한다. 내부적으로 torch.multiprocessing을 사용하기 때문인데 해결 방법은 다음과 같다.

 

torch.multiprocessing.set_start_method('spawn')

 

코드 도입부에 위와 같은 설정을 선언해주면 된다. 간단하다.

 

반응형