0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL2+Dockerでfastaiを動かして、「DataLoader worker (pid(s) ~) exited unexpectedly」エラーがでたときの対応方法

Posted at

課題

fastaiで学習を実行するときに、DataLoaderで以下のエラーが出る

RuntimeError: DataLoader worker (pid(s) ~) exited unexpectedly

原因

DataLoaderが結構メモリを食う(5GB~)ので、メモリが足りなくなるため。
メモリ32GBのホストOSで動かすなら、メモリ消費割合は5GB/32GBで問題ないが、
WSLにはデフォルトで、(ホストOSのメモリが16GB以上の場合)8GBしかメモリが割り当てられないので、対応が必要。

対応

WSL上のDockerコンテナでfastaiを動かす場合、WSLとDockerコンテナそれぞれにメモリの割り当てる。

WSLの対応:WSLの設定(.wslconfig)に、メモリサイズを指定

C:\Users\(username)\.wslconfigに、以下のように設定する。(16GB割り当てる場合)

.wslconfig
[wsl2]
memory=16GB

参考:WSL2 RAMとスワップを理解する-デフォルトを50%〜25%変更する

Dockerコンテナの対応:コンテナ起動時に共有メモリサイズ(shm-size)を指定

docker composeでコンテナを管理している場合は、以下のように記述する。

docker-compose.yml
services:
  jupyter:
    image: lilacs2039/fastai-nbdev
(中略)
    shm_size: 2gb    # shared memory
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?