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

pandle报SystemError:(Fatal)Blockingqueueiskilledbecausethedatareaderraisesanexception.

错误信息ERROR:root:DataLoaderreaderthreadraisedanexception!Traceback(mostrecentcalllast):File“

错误信息


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的尺寸


推荐阅读
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社区 版权所有