Pytorch dataloader在加载最后一个batch时卡死的解决
作者:Wilber529 发布时间:2022-09-15 06:50:34
标签:Pytorch,dataloader,batch,卡死
问题:
自己写了个dataloader,为了部署方便,用OpenCV的接口进行数据读取,而没有用PIL,代码大致如下:
def __getitem__(self, idx):
sample = self.samples[idx]
img = cv2.imread(sample[0])
img = cv2.resize(img, tuple(self.input_size))
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# if not self.val and random.randint(1, 10) < 3:
# img = self.img_aug(img)
img = Image.fromarray(img)
img = self.transforms(img)
...
结果在训练过程中,在第1个epoch的最后一个batch时,程序卡死。
解决方案:
可能是因为OpenCV与Pytorch互锁的问题,关闭OpenCV的多线程,问题解决。
cv2.setNumThreads(0)
cv2.ocl.setUseOpenCL(False)
补充:pytorch 中一个batch的训练过程
# 一般情况下
optimizer.zero_grad() # 梯度清零
preds = model(inputs) # inference,前向传播求出预测值
loss = criterion(preds, targets) # 计算loss
loss.backward() # 反向传播求解梯度
optimizer.step() # 更新权重,更新网络权重参数
此外,反向传播前,如果不进行梯度清零,则可以实现梯度累加,从而一定程度上解决显存受限的问题。
来源:https://blog.csdn.net/sinat_37532065/article/details/103990364


猜你喜欢
- 最近遇到一个SQL Server服务器响应极度缓慢,并且出现客户端请求报错的情况,在数据库中的errorlog中出现磁盘请求超过15s才完成
- 首先是最常规的方法:<p id="para" title="cssrain demo!" on
- 最近开始学习Python,但只限于看理论,编几行代码,觉得没有意思,就想能不能用Python编写可视化的界面。遂查找了相关资料,发现了PyQ
- pytorch 中的 state_dict 是一个简单的python的字典对象,将每一层与它的对应参数建立映射关系.(如model的每一层的
- import 认识go的import有两种形式第一种是GOPATH下项目文件管理第二种是Go Modules初学状态我用的vscode.在两
- FCKeditor至今已经到了2.3.1版本了,对于国内的WEB开发者来说,也基本上都已经“闻风知多少”了,很多人将其融放到自己的项目中,更
- 本文实例为大家分享了Vue+express+Socket实现聊天功能的具体代码,供大家参考,具体内容如下实现聊天功能具体功能只是为了实现功能
- Exec sp_droplinkedsrvlogin ZYB,Null --删除映射(录与链接服务器上远程登录之间的映射) Exec sp_
- 我就废话不多说了,大家还是直接看代码吧try: s = socket.socket() s.bind(('127.0.0.1'
- 本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) 。 MySQ
- 实战场景经常有朋友问,学 Python 面向对象时,翻阅别人代码,会发现一个 super() 函数,那这个函数的作用到底是什么?super(
- 今天呢,田辛老师来给大家继续讲一个著名的项目管理工具:蒙特卡洛模拟。 当然,田辛老师既然发到CSDN上面,无论如何要给出关于蒙特卡洛模拟的P
- smtp指令书接上文邮件实现详解,这里我们及我们简单复习一下smtp的指令如下:telnet smtp.163.com 25[outpout
- 本文实例讲述了获取django框架orm query执行的sql语句实现方法。分享给大家供大家参考,具体如下:利用Django orM 可以
- 印刷和网络是不一样的。传统的布局排版并不适于网络,因为传统的印刷布局,几乎只想要什么样的平面效果都能很好的达到,但在网络上设计就很困难,尽管
- 前言在Python中已经内置了一个smtp邮件发送模块,Django在此基础上进行了简单地封装,让我们在Django环境中可以更方便更灵活的
- Urllib官方文档地址:https://docs.python.org/3/library/urllib.htmlurllib提供了一系列
- 希望达到的效果工具类的Golang项目需要编译成二进制文件后在命令行中运行,所以希望在github里面创建一个新的release后能自动编译
- 如何制作一个弹出式的调查窗口?执行下面这段ASP代码: <% &n
- 生活形态(Life-Style)的概念源自社会学与心理学,六十年代即有学者正式引用到市场营销领域,并运用其心理影射与多维度等特质,着力解释人