PyTorch socket.error [Errno 111] Connection refused

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. 问题描述

在nvidia-docker中使用PyTorch训练深度模型时,会碰到程序突然挂掉的情况,主要现象是产生core文件,有时输出错误信息,有时没有错误信息,进程会挂在哪里,错误信息类似于:

socket.error: [Errno 111] Connection refused

通常问题会定位在/usr/local/lib/python2.7/dist-packages/torch/utils/data/dataloader.py

2. 问题原因

Please note that PyTorch uses shared memory to share data between processes, so if torch multiprocessing is used (e.g. for multithreaded data loaders) the default shared memory segment size that container runs with is not enough, and you should increase shared memory size either with --ipc=host or --shm-size command line options to nvidia-docker run.

主要原因在于PyTorch的数据加载是多线程的,它们使用的是共享内存来共享数据,默认的共享内存是不够的,因此需要增加共享内存。

3. 解决方案

主要是在启动docker时加上--ipc=host参数。

nvidia-docker run --ipc=host -ti -v $(pwd):/workspace docker-image

参考资料

https://github.com/pytorch/pytorch

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值