【Python】[Errno 32] Broken pipe【PyTroch】
pytorchで [Errno 32] Broken pipe の解消方法について
実行環境
- windows 10
- PyTorch v1.2
エラー発生原因
このエラーはwindows+torch.utils.data.DataLoaderのnum_workers>1 + IPythonの書き方で発生してるようです。
同じコードをcentosで実行すると正常に動作するのでwindows動作でのバグか仕様みたいです。 dataloaderのnum_workersを複数にしてマルチスレッドで処理するときにエラーが発生してるみたいです。
解消方法
def main(): の中に処理を記述すれば正常に動作します。
def main(): # ここにpytorchのコードを記述 if __name__ == "__main__": main()
僕の場合.ipynbで書いたものを無理やり.pyで実行したら案の定エラーが発生。
結論
良い子のみんなはmain関数をちゃんと作ろうね!!