pandle报SystemError: (Fatal) Blocking queue is killed because the data reader raises an exception.

Posted 修炼之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandle报SystemError: (Fatal) Blocking queue is killed because the data reader raises an exception.相关的知识,希望对你有一定的参考价值。

错误信息

ERROR:root:DataLoader reader thread raised an exception!
Traceback (most recent call last):
File “/home/disk0/zw/workspace/PaddleOCR/test/load_data.py”, line 38, in
for idx,batch in enumerate(data_loader):
File “/home/disk0/zw/anaconda3/envs/paddle/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)

分析原因

在使用PaddleOCR训练文字识别模型的时候报了上面的错误,我是自己制作的数据集来训练的

解决方法

  1. 检查自己制作的数据集格式是否为

" 图像文件名 图像标注信息 "
train_data/train_0001.jpg 简单可依赖
train_data/train_0002.jpg 用科技让复杂的世界更简单

注意:图片路径和图像标注信息之间用\\t进行分割

  1. 检查label标签的长度

默认label最长的长度为25,如果小于25就会使用0进行补充,大于25会在CTCLabelEncode的时候回直接返回一个None,对于这种情况有两种解决方法,在制作标签的时候限制label的长度不大于25或者将配置文件中的max_text_length参数改为标签label中的最长长度

  1. 检查图像的shape

默认的shape为[3, 32, 320],paddleOCR在实现resize shape的时候有一个问题,在RecResizeImg中如果ratio = w * 1.0 / h大于320/32=10时会导致最终输出的图片尺寸不为[3,32,320]图片的宽会大于320,从而导致在加载数据的时候报上面的错误。对于这种情况的解决办法,直接删除不符合条件的图片调大shape的尺寸

以上是关于pandle报SystemError: (Fatal) Blocking queue is killed because the data reader raises an exception.的主要内容,如果未能解决你的问题,请参考以下文章

system verilog assertion怎么报error

Docker 抛出 FATA [0000] 来自守护进程的错误响应

rke安装报错 Unsupported Docker version found

Spoj-DRUIDEOI Fata7y Ya Warda!

SystemError:父模块''未加载,无法执行相对导入[重复]

保存图像期间 PIL 中的“SystemError:tile 无法扩展到图像外部”