Pytorch broken pipe error
Pytorch를 사용하며 종종 다음과 같은 에러가 나올 때가 있었다:
BrokenPipeError: [Errno 32] Broken pipe
이유를 찾아보니 두 가지 이유 정도가 있었다:
1. 에러가 있는 코드 내부에서 dataloader의 num_workers를 2 이상(1 이상인지 2 이상인지 헷갈리는데 아마 2 이상이 맞는 것 같다)으로 설정하고 run 했을 때
2. Windows 환경에서 if __name__ == "__main__" 문 밖에 함수를 제외한 나머지 코드 중 한 줄이라도 존재할 때 run
내가 겪은 상황은 2번에 해당하는 경우였다. GPU visibility를 설정하는 os.environ 문이 import 코드 바로 다음에 와서 if __name__ == "__main__" 문 안에 포함되어 있지 않았던 것.
그리고 run 에서는 error가 발생하는데 debug에서는 발생하지 않았다(PyCharm 사용).
출처:
https://discuss.pytorch.org/t/dataloader-produces-brokenpipeerror-errno-32-broken-pipe-error/51325
https://discuss.pytorch.org/t/brokenpipeerror-errno-32-broken-pipe-on-windows-and-cuda-10/35894/6
BrokenPipeError: [Errno 32] Broken pipe
이유를 찾아보니 두 가지 이유 정도가 있었다:
1. 에러가 있는 코드 내부에서 dataloader의 num_workers를 2 이상(1 이상인지 2 이상인지 헷갈리는데 아마 2 이상이 맞는 것 같다)으로 설정하고 run 했을 때
2. Windows 환경에서 if __name__ == "__main__" 문 밖에 함수를 제외한 나머지 코드 중 한 줄이라도 존재할 때 run
내가 겪은 상황은 2번에 해당하는 경우였다. GPU visibility를 설정하는 os.environ 문이 import 코드 바로 다음에 와서 if __name__ == "__main__" 문 안에 포함되어 있지 않았던 것.
그리고 run 에서는 error가 발생하는데 debug에서는 발생하지 않았다(PyCharm 사용).
출처:
https://discuss.pytorch.org/t/dataloader-produces-brokenpipeerror-errno-32-broken-pipe-error/51325
https://discuss.pytorch.org/t/brokenpipeerror-errno-32-broken-pipe-on-windows-and-cuda-10/35894/6
댓글
댓글 쓰기