首页 PaddleOCR 帖子详情
Error: maximum recursion depth exceeded while calling a Python object
收藏
快速回复
PaddleOCR 问答识别OCR 842 5
Error: maximum recursion depth exceeded while calling a Python object
收藏
快速回复
PaddleOCR 问答识别OCR 842 5

项目OCR实验(下)之文本识别

ERROR:root:DataLoader reader thread raised an exception!

方法1.看到修改深度,代码中没有深度的相关代码

import sys # 导入sys模块
sys.setrecursionlimit(3000) # 将默认的递归深度修改为3000

方法2.修改过cal_metric_during_train 设置为 False,还是会报错,请问如何解决?

Exception in thread Thread-5:
Traceback (most recent call last):
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/threading.py", line 926, in _bootstrap_inner
self.run()
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py", line 391, in _thread_loop
batch = self._get_data()
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py", line 505, in _get_data
batch.reraise()
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/worker.py", line 168, in reraise
raise self.exc_type(msg)
RecursionError: DataLoader worker(1) caught RecursionError with message:
Traceback (most recent call last):
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/worker.py", line 320, in _worker_loop
batch = fetcher.fetch(indices)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/fetcher.py", line 106, in fetch
data = [self.dataset[idx] for idx in batch_indices]
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/fetcher.py", line 106, in
data = [self.dataset[idx] for idx in batch_indices]
File "/tmp/ipykernel_4442/323684872.py", line 57, in __getitem__
return self.__getitem__(rnd_idx)
File "/tmp/ipykernel_4442/323684872.py", line 57, in __getitem__
return self.__getitem__(rnd_idx)
File "/tmp/ipykernel_4442/323684872.py", line 57, in __getitem__
return self.__getitem__(rnd_idx)
[Previous line repeated 2950 more times]
File "/tmp/ipykernel_4442/323684872.py", line 56, in __getitem__
rnd_idx = np.random.randint(self.__len__()) if self.mode == "train" else (idx + 1) % self.__len__()
File "mtrand.pyx", line 747, in numpy.random.mtrand.RandomState.randint
File "_bounded_integers.pyx", line 1237, in numpy.random._bounded_integers._rand_int64
RecursionError: maximum recursion depth exceeded while calling a Python object

 

---------------------------------------------------------------------------SystemError Traceback (most recent call last)/tmp/ipykernel_4442/3769845673.py in
11 # 模型训练
12 for epoch in range(epoch_num):
---> 13 for idx, batch in enumerate(train_dataloader):
14 if idx >= len(train_dataloader):
15 break
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py in __next__(self)
563
564 if in_dygraph_mode():
--> 565 data = self._reader.read_next_var_list()
566 data = _restore_batch(data, self._structure_infos.pop(0))
567 else:
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:166)

0
收藏
回复
全部评论(5)
时间顺序
你是年少的欢喜
#2 回复于2022-08

该问题已经解决,数据集格式的问题。按照飞桨中数据集标签格式,不报错

0
回复
582716403
#3 回复于2022-08

你好,我用飞桨工具导出的识别数据集也是出现这个问题,请问一些你说的标签格式问题,是\t和分隔符 \n的原因吗

0
回复
582716403
#4 回复于2022-08

我的自己生成的数据可以被百度官方的标注工具,然后用标注工具导出后,报错跟你差不多。但又不太一样。

[2022/08/04 17:20:18] ppocr ERROR: When parsing line crop_img/1659537344481_crop_7.jpg 累唱患唯崖崭崇圈铜铲银甜梨犁移笨笼笛符第敏做袋悠偿
, error happened with msg: Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 137, in __getitem__
outs = transform(data, self.ops)
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\__init__.py", line 50, in transform
data = op(data)
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\rec_img_aug.py", line 31, in __call__
img = warp(img, 10, self.use_tia, self.aug_prob)
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\rec_img_aug.py", line 571, in warp
new_img = tia_distort(new_img, random.randint(3, 6))
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\augment.py", line 60, in tia_distort
dst = trans.generate()
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\warp_mls.py", line 42, in generate
return self.gen_img()
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\warp_mls.py", line 148, in gen_img
nx = np.clip(nx, 0, src_w - 1)
File "<__array_function__ internals>", line 180, in clip
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 2154, in clip
return _wrapfunc(a, 'clip', a_min, a_max, out=out, **kwargs)
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 57, in _wrapfunc
return bound(*args, **kwds)
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\_methods.py", line 135, in _clip
if _clip_dep_is_scalar_nan(min):
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\_methods.py", line 95, in _clip_dep_is_scalar_nan
if ndim(a) != 0:
File "<__array_function__ internals>", line 180, in ndim
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 3154, in ndim
return a.ndim
RecursionError: maximum recursion depth exceeded while calling a Python object

Fatal Python error: Cannot recover from stack overflow.
Python runtime state: initialized

Current thread 0x000067e8 (most recent call first):
File "<__array_function__ internals>", line 180 in ndim
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\_methods.py", line 95 in _clip_dep_is_scalar_nan
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\_methods.py", line 135 in _clip
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 57 in _wrapfunc
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 2154 in clip
File "<__array_function__ internals>", line 180 in clip
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\warp_mls.py", line 148 in gen_img
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\warp_mls.py", line 42 in generate
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\augment.py", line 94 in tia_stretch
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\rec_img_aug.py", line 576 in warp
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\rec_img_aug.py", line 31 in __call__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\__init__.py", line 50 in transform
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 137 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
...

Thread 0x00007d40 (most recent call first):
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\paddle\fluid\dataloader\dataloader_iter.py", line 272 in __next__
File "C:\Users\Administrator\Desktop\OCR\tools\program.py", line 243 in train
File "tools/train.py", line 166 in main
File "tools/train.py", line 193 in

0
回复
你是年少的欢喜
#5 回复于2022-08
你好,我用飞桨工具导出的识别数据集也是出现这个问题,请问一些你说的标签格式问题,是\t和分隔符 \n的原因吗

您好,我是fork项目的时候没有注意作者的数据集提示:默认请将图片路径和图片标签用\t分割,如用其他方式分割将造成训练报错,更换数据集就没报这个错了;你的这个错误致命的Python错误:无法从堆栈溢出恢复,相关回答有:The error you're getting indicates that you have a function called do which calls itself, probably in an infinite loop. When a function does that too many times (calls itself inside itself, which causes it to call itself inside itself inside itself...) you get what's called a "stack overflow",您看一下代码里是否有函数在无限循环。

0
回复
fghhhgasde
#6 回复于2022-08

1

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户