在PyTorch训练一个epoch时,模型不能接着训练,Dataloader卡死
笔者在训练模型的时候,突然偶遇这个问题,即训练一个epoch时,模型不能接着训练,只能通过Ctrl+C强制性暂停,见下图:
Ctrl+C之后呈现的信息表明,这个bug是和多线程有关系。
经过笔者实验,目前有三种可靠的解决方式
1).Dataloader里面不用cv2.imread进行读取图片,用cv2.imread还会带来一系列的不方便,比如不能结合torchvision进行数据增强,所以最好用PIL 里面的Image.open来读图片
2).将DataLoader 里面的参变量num_workers设置为0,但会导致数据的读取很慢,拖慢整个模型的训练
3).如果用了cv2.imread,也懒得改了,那就加两条语句,来关闭Opencv的多线程:cv2.setNumThreads(0)和cv2.ocl.setUseOpenCL(False)。加了这两条语句之后,并不影响模型的训练速度,根据笔者观察,速度相反还变快了,真神奇呀。
综上所述:如果遇到此问题,建议选择方法1和方法3来解决这个问题,因为不影响模型训练速度。
在PyTorch训练一个epoch时,模型不能接着训练,Dataloader卡死相关推荐
- Pytorch基础训练库Pytorch-Base-Trainer(支持模型剪枝 分布式训练)
Pytorch基础训练库Pytorch-Base-Trainer(支持模型剪枝 分布式训练) 目录 Pytorch基础训练库Pytorch-Base-Trainer(PBT)(支持分布式训练) 1.I ...
- Pytorch实现一个简单分类模型
Pytorch实现一个简单分类模型 在本小节主要带领大家学习分类任务的代码编写,另外,本人参考的学习资料为[莫烦Python],有兴趣观看视频的同学可以观看视频资料https://www.youtub ...
- NLP:训练一个中文问答模型Ⅰ
训练一个中文问答模型I-Step by Step 本文基于经典的NMT架构(Seq2Seq+Attention),训练了一个中文问答模型,把问题到答案之间的映射看作是问题到答案的翻译.基于Tens ...
- NLP:训练一个中文问答模型Ⅱ
训练一个中文问答模型Ⅱ-Step by Step 接上一篇 中文问答模型Ⅰ基于这次仍是基于NMT架构训练,但是把Seq2Seq替换为Transformer架构,还有一点不同是,本次没有采用分词训练 ...
- 如何从头训练一个一键抠图模型
如何从头训练一个一键抠图模型 1. 前言 抠图是图像编辑的基础功能之一,在抠图的基础上可以发展出很多有意思的玩法和特效.比如一键更换背景.一键任务卡通化.一键人物素描化等.正是因为这些有意思的玩法,C ...
- pascal行人voc_在一个很小的Pascal VOC数据集上训练一个实例分割模型
只使用1349张图像训练Mask-RCNN,有代码. 代码:https://github.com/kayoyin/tiny-inst-segmentation 介绍 计算机视觉的进步带来了许多有前途的 ...
- 快速入门PyTorch(3)--训练一个图片分类器和多 GPUs 训练
2019 第 44 篇,总第 68 篇文章 本文大约14000字,建议收藏阅读 快速入门 PyTorch 教程前两篇文章: 快速入门Pytorch(1)--安装.张量以及梯度 快速入门PyTorch( ...
- 使用Pytorch构建一个分类器(CIFAR10模型)
分类器任务和数据介绍 ·构建一个将不同图像进行分类的神经网络分类器,对输入的的图片进行判别并完成分类. ·本案例采用CIFAR10数据集作为原始图片数据 ·CIFAR10数据集介绍:数据集中每张图片的 ...
- 深度学习Tensorflow的坑(二:训练一个epoch卡住不动,程序不终止也不继续)
第一篇 承接上文 在搭载好环境之后,满心欢喜准备搭载模型的绘图(损失曲线.验证精度)功能,我就先使用10个epoch跑一下,结果. 它卡在199/200了!之前从没遇到过这个情况. 先看控制台报错,说 ...
最新文章
- 使用Linux进行缓冲区溢出实验的配置记录
- 同一台服务器上面安装多个mysql数据库
- M8100-Table T169P: entry 1510 does not exist
- eclipse输入中文为繁体字
- 如何构建Android MVVM 应用框架
- spring boot分层_只需5分钟即可启动并运行分层架构:: Spring Boot第1部分
- 2020-2021网络游戏行业人才招聘报告
- Visual Studio 2019 16.6 Preview 2 发布
- 翻转链表python递归_Python LeetCode-206.反转链表(难度-简单) 两个方法-迭代和递归,以及超简写法(python)...
- MAC安装向日葵软件步骤
- error.flash download failed-Target DLL has been cancelled
- 工行u盾显示316_工行U盾无法被电脑识别(方法全集)
- frida hook svc调用
- Error:403 No valid crumb was included in the request
- 计算机图形学直线线型实验报告,计算机图形学实验报告-直线中点bresenham算法的实现资料.doc...
- Linux热潮下,来呆猫云工作站玩转云上部署Linux工作流新思路
- 2019区块链概念股龙头
- Linux打印口/LPT口出厂测试工具与使用说明
- Hexo+NexT 如何取消下划线
- 支付宝 android 指纹支付,指纹支付教程放出!支付宝支持指纹支付!