栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Dataloader异常卡死或报错

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dataloader异常卡死或报错

问题描述:

使用pytorch训练网络加载数据当num_workers>0时,训练一轮并验证后,训练第二轮时卡在for循环那里取不到数据。num_worders=0就没有问题。但效率慢。
pytorch 1.7.1 不报任何错误
pytorch 1.11.0 会报DataLoader worker (pid 22479) is killed by signal: Segmentation fault.
如果在pytorch 1.7.1追踪代码,发现卡在python3.7/site-packages/torch/utils/data/_utils/worker.py中的198行data = fetcher.fetch(index)


之前用mxnet的时候也出现过训练到一半的时候突然就卡在那个地方不报错也不退出。就是显卡使用率0%,不知道是不是同样的问题。
这个问题困扰了好久,因为用num_workers=0就没有问题,所以一直没有解决。


原因分析:

这几天实在受不了。经过各种谷歌,终于让我找到了解决方法。
看下你的Dataset类里,__gititem__(self,item)方法内是不是用了opencv做图像处理。如果是这就是原因了,opencv的多线程和python的多线程相互干扰了。


解决方案:
import cv2
cv2.setNumThreads(0)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834753.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号