首页 Paddle框架 帖子详情
PaddleOCR 自己修改了训练模型,转换为推理模型后预测出问题
收藏
快速回复
Paddle框架 问答模型训练 795 4
PaddleOCR 自己修改了训练模型,转换为推理模型后预测出问题
收藏
快速回复
Paddle框架 问答模型训练 795 4
E0411 21:58:01.988416 19264 analysis_config.cc:91] Please compile with gpu to EnableGpu()
Traceback (most recent call last):
  File "D:\PythonProject\PaddleOCR\OCR.py", line 101, in det_rec
    result = ocr.ocr(img_path, cls=False)
  File "D:\PythonProject\PaddleOCR\paddleocr.py", line 343, in ocr
    dt_boxes, rec_res = self.__call__(img, cls)
  File "D:\PythonProject\PaddleOCR\tools\infer\predict_system.py", line 60, in __call__
    dt_boxes, elapse = self.text_detector(img)
  File "D:\PythonProject\PaddleOCR\tools\infer\predict_det.py", line 195, in __call__
    self.predictor.run()
RuntimeError: In user code:

    File "tools/export_model.py", line 123, in 
      main()
    File "tools/export_model.py", line 119, in main
      export_single_model(model, arch_config, save_path, logger)
    File "tools/export_model.py", line 74, in export_single_model
      paddle.jit.save(model, save_path)
    File "D:\creatTool\anaconda\lib\site-packages\decorator.py", line 232, in fun
      return caller(func, *(extras + args), **kw)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\wrapped_decorator.py", line 25, in __impl__
      return wrapped_func(*args, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\base.py", line 51, in __impl__
      return func(*args, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\jit.py", line 743, in save
      concrete_program = static_func.concrete_program_specify_input_spec(
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 516, in concrete_program_specify_input_spec
      concrete_program, _ = self.get_concrete_program(
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 427, in get_concrete_program
      concrete_program, partial_program_layer = self._program_cache[cache_key]
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 723, in __getitem__
      self._caches[item] = self._build_once(item)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 709, in _build_once
      concrete_program = ConcreteProgram.from_func_spec(
    File "D:\creatTool\anaconda\lib\site-packages\decorator.py", line 232, in fun
      return caller(func, *(extras + args), **kw)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\wrapped_decorator.py", line 25, in __impl__
      return wrapped_func(*args, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\base.py", line 51, in __impl__
      return func(*args, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 662, in from_func_spec
      outputs = static_func(*inputs)
    File "D:\PythonProject\PaddleOCR\ppocr\modeling\architectures\base_model.py", line 75, in forward
      x = self.backbone(x)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 917, in __call__
      return self._dygraph_call_func(*inputs, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 907, in _dygraph_call_func
      outputs = self.forward(*inputs, **kwargs)
    File "C:\Users\ASONEM~1\AppData\Local\Temp\tmpiuk4fa_e.py", line 20, in forward
      [x, __for_loop_var_index_0] = paddle.jit.dy2static.convert_while_loop(
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 45, in convert_while_loop
      loop_vars = _run_py_while(cond, body, loop_vars)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 59, in _run_py_while
      loop_vars = body(*loop_vars)
    File "D:\PythonProject\PaddleOCR\ppocr\modeling\backbones\det_mobilenet_v3_CA.py", line 152, in forward
      x = stage(x)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 917, in __call__
      return self._dygraph_call_func(*inputs, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 907, in _dygraph_call_func
      outputs = self.forward(*inputs, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\container.py", line 98, in forward
      input = layer(input)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 917, in __call__
      return self._dygraph_call_func(*inputs, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 907, in _dygraph_call_func
      outputs = self.forward(*inputs, **kwargs)
    File "C:\Users\ASONEM~1\AppData\Local\Temp\tmpsr0_2m_9.py", line 15, in forward
      x = paddle.jit.dy2static.convert_ifelse(self.if_ca, true_fn_7,
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 211, in convert_ifelse
      out = _run_py_ifelse(pred, true_fn, false_fn, true_args, false_args)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 257, in _run_py_ifelse
      return true_fn(*true_args) if pred else false_fn(*false_args)
    File "D:\PythonProject\PaddleOCR\ppocr\modeling\backbones\det_mobilenet_v3_CA.py", line 241, in forward
      x = self.mid_ca(x)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 917, in __call__
      return self._dygraph_call_func(*inputs, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 907, in _dygraph_call_func
      outputs = self.forward(*inputs, **kwargs)
    File "D:\PythonProject\PaddleOCR\ppocr\modeling\backbones\CA.py", line 28, in forward
      x_h = self.pool_h(x)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 917, in __call__
      return self._dygraph_call_func(*inputs, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\dygraph\layers.py", line 907, in _dygraph_call_func
      outputs = self.forward(*inputs, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\nn\layer\pooling.py", line 772, in forward
      return F.adaptive_avg_pool2d(
    File "D:\creatTool\anaconda\lib\site-packages\paddle\nn\functional\pooling.py", line 1153, in adaptive_avg_pool2d
      helper.append_op(
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\layer_helper.py", line 43, in append_op
      return self.main_program.current_block().append_op(*args, **kwargs)
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\framework.py", line 3178, in append_op
      op = Operator(
    File "D:\creatTool\anaconda\lib\site-packages\paddle\fluid\framework.py", line 2224, in __init__
      for frame in traceback.extract_stack():

    PreconditionNotMetError: The Tensor's element number must be equal or greater than zero. The Tensor's shape is [1, 40, -1, 1] now
      [Hint: Expected numel() >= 0, but received numel():-40 < 0:0.] (at C:\home\workspace\Paddle_release\paddle\fluid\framework\tensor.cc:59)
      [operator < pool2d > error]

自己训练时,修改了模型,在骨干网络MV3模型上进行了修改,还使用了MV3的large预训练模型,训练时有模型不匹配的问题,但是不影响训练,训练模型可以测试效果,转换为推理模型后,出现以下问题

0
收藏
回复
全部评论(4)
时间顺序
FutureSI
#2 回复于2022-04

模型结构没问题的话,就是数据预处理了

0
回复
A
AIStudio790542
#3 回复于2022-04
模型结构没问题的话,就是数据预处理了

我改变了MobileNetV3中的SE模块,新添加的注意力机制测试shape前后一致,原SE模块加入使用没问题,目前感觉predict_rec.py和infer_rec.py的图片预处理有所区别,我找找看

0
回复
A
AIStudio790542
#4 回复于2022-04
模型结构没问题的话,就是数据预处理了

多次尝试后,将export_model.py中infer_shape改为固定值

并且在predict_det.py中pre_process_list中添加'image_shape:[(与export_model.py中shape必须一样)]',才能成功运行

但是原来自由尺度却无法使用 paddleocr里面可以解决这个问题吗

0
回复
FutureSI
#5 回复于2022-05

加se会固定模型输出尺寸,如果是全卷积网络输出尺寸就不是固定的

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