Paddle SystemError另一情况: (Fatal) Blocking queue is killed because the data reader raises an exception

paddle框架(paddlepaddle版本时2.0.1)下在自定义的dataset上使用dataloader的时候,__getitem__(self, index):函数抛出异常会报错:

  File "train.py", line 103, in train
    for iterx,(inputx,labelx) in enumerate(train_loader()):
  File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py", line 351, in __next__
    return self._reader.read_next_var_list()
SystemError: (Fatal) Blocking queue is killed because the data reader raises an exception.
  [Hint: Expected killed_ != true, but received killed_:1 == true:1.] (at /paddle/paddle/fluid/operators/reader/blocking_queue.h:158)

下面链接中博主指出了一个类似的报错问题
使用paddle的dataloader不能返回tensor,需要返回np类型

但是在使用过程中,又发现了新问题,在使用GPU加载时,即使返回numpy.ndarray类型,也会因为返回值使用过reshape函数报同样的错

def __getitem__(self,index):
	...
	label_T = img_cat_T[:,:,3][np.newaxis,:,:]
	# label_T = img_cat_T[:,:,3].reshape(1,-1,-1) #System Error
	...
	return label_T

如上,注释的代码与未注释的在numpy下执行同样的操作,但是reshape会报错,估计是个bug

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值