Docker:Pytorch报错insufficient shared memory (shm)

Pytorch报错insufficient shared memory (shm)

一、出现错误背景

LZ自己在Docker中配了一套环境,里面也同时安装了Anaconda,然后包含各种例如pytoch,tf,onnx,caffe等不同框架,在容器中使用pytorch训练的时候会出现以下问题

ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).

很多教程说的LZ觉得并不是很清晰,解决方法也不是很明确,于是根据自己的实践总结了一番,出现上述问题的原因是在构建容器的时候,设置的shared memory size太小了,所以我们需要增加它的size,具体怎么增加呢?

二、解决方案

  • step one:停止docker(注意不停止,后续操作做完也没啥用)
systemctl stop docker
  • step two:查找对应容器的id
docker inspect felaim_py_ubuntu16.04 | grep Id
 "Id": "70e7a5ca0a8de233**********************7164c7c4abc0f149cc42"
  • step three: 修改hostconfig.json文件

找到对应容器的id下的hostconfig.json文件,一般docker的container都在这个路径下/var/lib/docker/containers/your_containers_id/,找到对应hostconfig.json中,修改"ShmSize"这个设置,LZ改成8g

"ShmSize":8589934592
  • step four: 重启docker和对应容器
systemctl restart  docker
docker start felaim_py_ubuntu16.04
docker exec -it felaim_py_ubuntu16.04 /bin/bash
  • step five: 验证结果

在这里插入图片描述可以看到shm已經被我們修改完成了,再次运行pytorch训练代码,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值