PaddleDetection 匯出PP-YOLO 型別模型時報錯AssertionError: Bad argument number for Assign: 2, expecting 3 解決記錄
阿新 • • 發佈:2021-06-30
詳細報錯記錄:
paddle_38) ziyueshijue@ziyueshijue-desktop:~/work/cppwork/padleDemo/model/PaddleDetection$ python tools/export_model.py -c configs/ppyolo/ppyolo_r50vd_dcn_1x_coco.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyolo_r50vd_dcn_1x_coco.pdparams /home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/layers/utils.py:26: DeprecationWarning: `np.int` is a deprecated alias for the builtin `int`. To silence this warning, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link foradditional information. Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations def convert_to_list(value, n, name, dtype=np.int): /home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/tensor/creation.py:143: DeprecationWarning: `np.object` is a deprecated alias for the builtin `object`. To silence this warning, use `object` by itself. Doing this will not modify any behavior and is safe. Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations if data.dtype == np.object: [06/30 17:06:25] ppdet.utils.checkpoint INFO: Finish loading model weights: /home/ziyueshijue/.cache/paddle/weights/ppyolo_r50vd_dcn_1x_coco.pdparams [06/30 17:06:25] ppdet.engine INFO: Export inference config file to output_inference/ppyolo_r50vd_dcn_1x_coco/infer_cfg.yml /home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/layers/utils.py:77: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working return (isinstance(seq, collections.Sequence) and Traceback (most recent call last): File "tools/export_model.py", line 105, in <module> main() File "tools/export_model.py", line 101, in main run(FLAGS, cfg) File "tools/export_model.py", line 69, in run trainer.export(FLAGS.output_dir) File "/home/ziyueshijue/work/cppwork/padleDemo/model/PaddleDetection/ppdet/engine/trainer.py", line 460, in export input_spec, static_model.forward.main_program, File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 534, in main_program concrete_program = self.concrete_program File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 454, in concrete_program return self.concrete_program_specify_input_spec(input_spec=None) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 487, in concrete_program_specify_input_spec concrete_program, _ = self.get_concrete_program( File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 402, in get_concrete_program concrete_program, partial_program_layer = self._program_cache[cache_key] File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 711, in __getitem__ self._caches[item] = self._build_once(item) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 698, in _build_once concrete_program = ConcreteProgram.from_func_spec( File "<decorator-gen-58>", line 2, in from_func_spec File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/wrapped_decorator.py", line 25, in __impl__ return wrapped_func(*args, **kwargs) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/base.py", line 39, in __impl__ return func(*args, **kwargs) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 620, in from_func_spec static_func = convert_to_static(dygraph_function) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 141, in convert_to_static static_func = _FUNCTION_CACHE.convert_with_cache(function) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 78, in convert_with_cache static_func = self._convert(func) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 116, in _convert root_wrapper = self._dygraph_to_static.get_static_ast(root) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/ast_transformer.py", line 61, in get_static_ast self.transfer_from_node_type(self.static_analysis_root) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/ast_transformer.py", line 92, in transfer_from_node_type self._apply(transformer, node_wrapper, log_level=index + 1) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/ast_transformer.py", line 65, in _apply transformer(node_wrapper).transform() File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/ifelse_transformer.py", line 55, in transform self.visit(self.root) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/ast.py", line 371, in visit return visitor(node) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/ast.py", line 447, in generic_visit value = self.visit(value) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/ast.py", line 371, in visit return visitor(node) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/ast.py", line 447, in generic_visit value = self.visit(value) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/ast.py", line 371, in visit return visitor(node) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/ifelse_transformer.py", line 62, in visit_If new_node = create_convert_ifelse_node(return_name_ids, node.test, File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/ifelse_transformer.py", line 540, in create_convert_ifelse_node _, cond_node = create_assign_node(return_name_ids, convert_ifelse_layer) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/utils.py", line 439, in create_assign_node assign_node = gast.Assign(targets=[targets], value=node) File "/home/ziyueshijue/miniconda3/envs/paddle_38/lib/python3.8/site-packages/gast/gast.py", line 17, in create_node assert nbparam in (0, len(Fields)), \ AssertionError: Bad argument number for Assign: 2, expecting 3
paddlepaddle 版本: 2.0.2
後經排查,是gast庫版本高導致, 把gast 解除安裝,重新安裝 0.3.3解決
pip uninstall gast
pip install gast==0.3.3