参考:https://blog.csdn.net/qian1122221/article/details/88579684

问题描述:
最近在用RFBnet (源码是pytorch的)训练RSNA的比赛数据,除了要修改一点代码支持RSNA的数据集外(打算后续再写个博客),发现在使用dataloader读取数据时,如果设置num_workers为0,也就是用主进程读取数据,模型训练程序运行正常。如果设置num_workers为其他任何一个大于0的整数,也就是使用子进程读取数据时,训练程序会卡住,卡在训练之前,GPU使用率和显存占用率都为0。

解决过程:
由于是多进程就,用print调试大法,定位到是一行opencv代码的问题,在dataloader子类的__getitem__方法里面调用了

image_array = cv2.cvtColor(image_array, cv2.COLOR_GRAY2BGR)
所有子进程的代码都卡在这里了。之前也有遇到过类似的问题,python多进程调用opencv的代码会出现问题。于是就用numpy的concate替代了这个方法

image_array = np.concatenate([image_array,image_array,image_array],axis=2)
绕过这个问题就可以正常训练了。

问题探索:
其实这个问题,我在另外一台机器上是没有遇到了,该机器是python3.6+opencv3.4.2

遇到问题的环境是docker环境,python3.5+opencv3.2

我感觉跟opencv的版本可能有关系,等后续训练完成之后把docker里面opencv的版本升级到3.4.2再试一下

pytorch dataloader num_workers参数设置导致训练阻塞相关推荐

  1. [PyTorch]——DataLoader Num_workers

    前段时间,我在调整yolo系列代码的时候,运行代码后,会提示 win页面太小问题,这种问题的解决办法之一就是通过调整 DataLoader的num_workers值的大小来解决,为了进一步了解num_ ...

  2. Python Dataloader 多进程报错 num_workers参数设置

    报错内容:An attempt has been made to start a new process before the current process has finished 该报错一般发生 ...

  3. LDA模型参数设置,训练效果较好

    前言:写小论文用到lda主题模型,在网上找了一圈没有找到训练效果较好的模型参数示例.为了写出小论文做了很多次实验,达到了实验中最好的效果,故贴出 代码: from gensim.models impo ...

  4. qt连接错误ip的sqlserver超时时间_参数设置导致请求超时案例

    问题现象 晚上版本上线后,发现工号进入首页后页面空白,显示INTERNAL_SERVER_ERROR 过程回顾 通过fiddler抓包,发现某个请求出现500错误 检查应用,was,ihs日志,没有发 ...

  5. pytorch中dataloader的num_workers参数

    结论速递 在Windows系统中,num_workers参数建议设为0,在Linux系统则不需担心. 1 问题描述 在之前的任务超大图上的节点表征学习中,使用PyG库用于数据加载的DataLoader ...

  6. Pytorch——DataLoader的学习笔记~

    1 前言 今天在学习动物多分类~ 示例代码里面使用的是Pytorch~ 2 DataLoader数据载入器 2.1 num_workers参数设置 num_workers是DataLoader构造函数 ...

  7. pytorch中DataLoader的num_workers参数详解与设置大小建议

    Q:在给Dataloader设置worker数量(num_worker)时,到底设置多少合适?这个worker到底怎么工作的? train_loader = torch.utils.data.Data ...

  8. 使用Pytorch DataLoader快捷封装训练数据、测试数据的X与Y

    DataSet的用法可以参考:pytorch 构造读取数据的工具类 Dataset 与 DataLoader (pytorch Data学习一) DataLoader的封装方法可以参考:Pytorch ...

  9. pytorch学习笔记-num_workers的设置

    示例: from torch.utils.data import DataLoadertrain_loader = DataLoader(dataset=train_data, batch_size= ...

最新文章

  1. java和python的比较-Python和Java就业前景对比
  2. android开发桌面源码,android launcher 源码 自己开发启动桌面
  3. DFS分布式文件系统--管理篇
  4. jmap报错unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap
  5. android 环形时间显示_使用Arduino构建OLED显示屏与Android手机接口的智能手表
  6. Java高并发编程详解系列-深入理解Thread构造
  7. 异步串行通讯和同步串行通讯对比
  8. 年关将至,很多朋友想要创业的心又开始蠢蠢欲动了
  9. weblogic环境,应用上传图片报Could not initialize class sun.awt.X11.XToolkit
  10. Apache 2.4.28的安装
  11. 软件开发项目成本管理实践
  12. 突然发现浏览器广告拦截插件原理
  13. python之字符串(str)和编码
  14. 算法入门到进阶(一)——算法复杂度
  15. c# word文档基本操作 (上)
  16. vueh5调用摄像头拍照_HTML5调用摄像头实现拍照功能(兼容各大主流浏览器)
  17. Android开发——“adb”不是内部或外部命令,也不是可运行的程序或批处理文件——解决方案
  18. Android文件读写操作(assets 文件、 raw文件、内部存储文件、外部存储文件)
  19. 联想YOGA 3笔记本如何U盘启动
  20. Linux df命令的使用

热门文章

  1. ubuntu 安装VmTool
  2. IsWow64的真实用途
  3. JAVA 继承基本类、抽象类、接口
  4. TCP/IP详解--第三章
  5. Android中的线程处理
  6. Makefile文件和shell脚本
  7. mac 搭建php wamp,Linux,Windows,Mac平台php环境配置
  8. spock_将Spock 1.3测试迁移到Spock 2.0
  9. matlab多元回归程序,多元回归程序MATLAB程序
  10. linux消息信号丢失,Linux信号丢失问题分析