RuntimeError: DataLoader worker (pid 11788) is killed by signal: Bus error. It is possible that dataloader's workers are out of shared memory. Please try to raise your shared memory limit.
这是因为shm值太小,利用 df -h 查看:
方法一
不断减小woker的数量,直到worker数等于1,但还报以上错误的话,则本方法不适用
方法二
重新创建docker容器,并在容器创建过程中将shm-size设置得足够大(例如本人的是 --shm-size 8gb)
方法三
修改hostconfig.json文件也可以解决上述问题,且不用重新创建容器
-
利用命令:docker inspect 容器名或容器id
-
进入到上图Id目录中,找到hostconfig.json文件
- 关闭docker(为防止修改的参数再度还原,建议先关闭docker,再进行后续操作)
systemctl stop docker
- 利用vim 打开hostconfig.json文件
sudo vim hostconfig.json
- 启动docker
systemctl start docker
-
进到容器中查看效果