PyTorchのDataloderのWorkerを大きくして実行しようとしたら、以下のようなエラー。
RuntimeError: DataLoader worker (pid(s) *) exited unexpectedly
原因としては共有メモリの不足。特にDocker環境だとホストで実行している場合よりも共有メモリが少ないので、このようなエラーが起きがち。
対処法1 Docker run時に共有メモリを多めに割り当てる
デフォルトでは64MB割り当てられているので、それよりも増やす。下記だと1024MB割り当てる。
$ docker run --shm-size=1024m ~~~
対処法2 workerの数を減らす
エラーが起きないところまで減らす。再度docker runをしたくない場合、そもそもDocker環境じゃない場合、など。