Docker中运行PyTorch错误 RuntimeError: DataLoader worker (pid 123456) is killed by signal: Aborted.

问题

在Docker中运行PyTorch程序时,如果报错:

RuntimeError: DataLoader worker (pid 123456) is killed by signal: Aborted.

最可能的原因是,Docker的共享内存不足,解决办法是,要么改成更小的batchsize,要么退出docker后,重新运行docker并指定更大的共享内存。同时这个原因可以从docker的说明文档中可以看出:

--oom-kill-disable=false:Whether to disable OOM Killer for the container or not.

这个命令表示是否要kill超出内存的程序,以免崩溃。因此解决上面的问题需要重新调整docker的运行内存。例如:

docker run -m='16g' -memory-swap="20g"

docker中内存相关的命令

关于docker内存相关的命令:(docker中有很多与内存相关的命令,如kernel-memory,oom等,这里列出常用的几个)

命令说明
-m, --memory=""Memory limit (format: []). Number is a positive integer. Unit can be one of b, k, m, or g. Minimum is 4M.
–memory-swap=""总内存设置:内存+交换内存;Total memory limit (memory + swap, format: []). Number is a positive integer. Unit can be one of b, k, m, or g.
–shm-size=""共享内存 Size of /dev/shm. The format is . number must be greater than 0. Unit is optional and can be b (bytes), k (kilobytes), m (megabytes), or g (gigabytes). If you omit the unit, the system uses bytes. If you omit the size entirely, the system uses 64m.

关于其中的交换内存(swap)和共享内存(shm)的区别,可以看这篇文章:swap(交换内存)和shm(共享内存)的区别

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江前云后

文章结束的标识:打赏链接

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值