PaddleOCR
PaddleOCR copied to clipboard
use custom trained layout analysis model
请提供下述完整信息以便快速定位问题/Please provide the following information to quickly locate the problem
-
系统环境/System Environment: ubuntu 18
-
版本号/Version: Paddle:2.3.0 PaddleOCR: 问题相关组件/Related components: 2.6.0.1
-
运行指令/Command Code:
-
from paddleocr import PPStructure
-
structure_model=PPStructure(layout_model_dir='/home/administrator/PPStructure_model/picodet_lcnet_x1_0_layout/')
-
this path have the inference model I exported after training a custom layout analysis
-
when load the model have no problem
-
but when i use it and pass an image to it get this error
-
完整报错/Complete Error Message: In user code:
File "tools/export_model.py", line 108, in
main() File "tools/export_model.py", line 104, in main run(FLAGS, cfg) File "tools/export_model.py", line 73, in run trainer.export(FLAGS.output_dir) File "/content/PaddleDetection/ppdet/engine/trainer.py", line 1060, in export save_dir) File "/content/PaddleDetection/ppdet/engine/trainer.py", line 1019, in _get_infer_cfg_and_input_spec input_spec, static_model.forward.main_program, File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 580, in main_program concrete_program = self.concrete_program File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 488, in concrete_program return self.concrete_program_specify_input_spec(input_spec=None) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 528, in concrete_program_specify_input_spec *desired_input_spec, with_hook=with_hook) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 436, in get_concrete_program concrete_program, partial_program_layer = self._program_cache[cache_key] File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 801, in getitem self._caches[item_id] = self._build_once(item) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 790, in _build_once **cache_key.kwargs) File " ", line 2, in from_func_spec File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/wrapped_decorator.py", line 25, in impl return wrapped_func(*args, **kwargs) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/base.py", line 51, in impl return func(*args, **kwargs) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 733, in from_func_spec outputs = static_func(*inputs) File "/tmp/tmpps2bubkn.py", line 101, in forward false_fn_5, (), (inputs, self), (out,)) File "/usr/local/lib/python3.7/dist-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 "/usr/local/lib/python3.7/dist-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 "/tmp/tmpps2bubkn.py", line 84, in false_fn_5 for_loop_body_0, [inputs_list, __for_loop_var_index_0]) File "/usr/local/lib/python3.7/dist-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 "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/convert_operators.py", line 59, in _run_py_while loop_vars = body(*loop_vars) File "/tmp/tmpps2bubkn.py", line 79, in for_loop_body_0 dy2static.convert_call(self.get_pred)()) File "/tmp/tmpqqnnudw1.py", line 46, in get_pred __return_value_0,)) File "/usr/local/lib/python3.7/dist-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 "/usr/local/lib/python3.7/dist-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 "/tmp/tmpqqnnudw1.py", line 41, in false_fn_7 __return_value_0, self), (__return_value_0, output)) File "/usr/local/lib/python3.7/dist-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 "/usr/local/lib/python3.7/dist-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 "/content/PaddleDetection/ppdet/modeling/architectures/picodet.py", line 89, in get_pred bbox_pred, bbox_num = self._forward() File "/content/PaddleDetection/ppdet/modeling/architectures/picodet.py", line 64, in _forward body_feats = self.backbone(self.inputs) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/layers.py", line 930, in call return self._dygraph_call_func(*inputs, **kwargs) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/layers.py", line 915, in _dygraph_call_func outputs = self.forward(*inputs, **kwargs) File "/content/PaddleDetection/ppdet/modeling/backbones/lcnet.py", line 256, in forward x = self.conv1(x) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/layers.py", line 930, in call return self._dygraph_call_func(*inputs, **kwargs) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/layers.py", line 915, in _dygraph_call_func outputs = self.forward(*inputs, **kwargs) File "/content/PaddleDetection/ppdet/modeling/backbones/lcnet.py", line 95, in forward x = self.conv(x) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/layers.py", line 930, in call return self._dygraph_call_func(*inputs, **kwargs) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/layers.py", line 915, in _dygraph_call_func outputs = self.forward(*inputs, **kwargs) File "/usr/local/lib/python3.7/dist-packages/paddle/nn/layer/conv.py", line 678, in forward use_cudnn=self._use_cudnn) File "/usr/local/lib/python3.7/dist-packages/paddle/nn/functional/conv.py", line 169, in _conv_nd type=op_type, inputs=inputs, outputs=outputs, attrs=attrs) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/layer_helper.py", line 44, in append_op return self.main_program.current_block().append_op(*args, **kwargs) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/framework.py", line 3621, in append_op attrs=kwargs.get("attrs", None)) File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/framework.py", line 2635, in init for frame in traceback.extract_stack():
InvalidArgumentError: The conv2d Op's Input Variable
Input
contains uninitialized Tensor. [Hint: Expected t->IsInitialized() == true, but received t->IsInitialized():0 != true:1.] (at /paddle/paddle/fluid/framework/operator.cc:2004) [operator < conv2d > error] File "/home/administrator/Music/use_ppstruction/main.py", line 9, inres=structure_model(img)
from paddleocr import PPStructure structure_model=PPStructure(layout_model_dir='/home/administrator/PPStructure_model/picodet_lcnet_x1_0_layout/') this path have the inference model I exported after training a custom layout analysis when load the model have no problem
The default layout analysis model is OK. Can you provide the commands for you to train and export the model?
I Use this instructions
the training command is: !export CUDA_VISIBLE_DEVICES=0
!python3 tools/train.py
-c configs/picodet/legacy_model/application/layout_analysis/picodet_lcnet_x1_0_layout.yml
--eval
and export inference model command is :
!python3 tools/export_model.py
-c configs/picodet/legacy_model/application/layout_analysis/picodet_lcnet_x1_0_layout.yml
--slim_config configs/picodet/legacy_model/application/layout_analysis/picodet_lcnet_x2_5_layout.yml
-o weights=./output/picodet_lcnet_x1_0_layout/best_model
--output_dir=output_inference/
@LDOUBLEV LDOUBLEV any help
when i run the eval command it runs normally without any error and also the inference command
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.