今天在docker内使用mmdetection做训练时,workers_per_gpu参数设置为0时,可以正常训练。但修改配置文件中workers_per_gpu=2参数后,
开始训练,程序报错:
网上查资料显示,是因为docker的共享内存不足,使用命令df -h查看:
shm果然很小。
有两种解决办法:
1.重启docker容器,在重启docker容器时,使用 --shm-size 8g 参数,指定docker运行时的挂在内存:
启动docker之后,使用 df -h 查看此时的shm:
已经发生变化, 执行训练命令,正常。
2.还有一种方法是,找到容器对应的配置文件hostconfig.json,修改参数"ShmSize"。重启doker。
个人建议使用第一种方法。
参考:
https://www.jianshu.com/p/4398bdb9e2d2