pytorch dataloader 内存爆炸

场景

本意是想利用try-except的特性,当读取文件出错时,自动选择另一种方式进行读取,以用于多类型文件读取

问题描述

在训练模型时,使用try-except语句读文件时出现内存泄露,随着dataloader的读取,内存直线上升。
代码:

try:
	obj = itk.imread(name)
	obj = itk.array_view_from_image(obj, keep_axes=False)
except:
	obj = io.imread(name)

原因分析:

itk 没有安装,但是由于捕获了异常但是却没有输出,所以代码可以继续运行,并且由于使用堆内存后,不会try-except后不会释放变量,因此会使得内存占用一直增加。


解决方案:

使用这种方式时,尽量输出异常,防止觉得自己写的代码很完美,运行出来却很懵逼

try:
	obj = itk.imread(name)
	obj = itk.array_view_from_image(obj, keep_axes=False)
except Exception as e:
	obj = io.imread(name)
	print(e)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值