PyTorch socket.error [Errno 111] Connection refused

版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn.net/Quincuntial/article/details/79067567

文章作者: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

阅读更多

扫码向博主提问

SnailTyan

博客专家

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • 深度学习
  • PyTorch
  • OCR
  • Docker
  • Caffe
去开通我的Chat快问
换一批

没有更多推荐了,返回首页