热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

paddle报错SystemError:(Fatal)Blockingqueueiskilledbecausethedatareaderraisesanexception.

在使用paddle的dataloader的时候,如果defgetitem(self,index):函数发生异常会报错:ERROR:root:DataL

在使用paddle的dataloader的时候,如果def getitem(self, index):函数发生异常会报错:

ERROR:root:DataLoader reader thread raised an exception!
Traceback (most recent call last):File "train.py", line 28, in for i, (image1, image2, label) in enumerate(loader()):File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py", line 788, in __next__data = 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类型,实在无语啊
在这里插入图片描述
如图,圈起来的那句话在使用cpu的时候是可以正常加载数据的,但是!!!!如果使用gpu就会报上面的错误,修改成注释的那句返回在cpu和gpu的情况下就不会报错了,注释的返回就是返回了np类型。
估计是个bug…用的是paddlepaddle2.0.0不知道会不会修复。

Tips:
如果实在找不到这个异常的原因可以写一段代码测试,直接遍历要传入dataloader的dataset,这个dataset是列表的类型,如果有异常就会报错python的错误可以来debug。


推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有