• PaddleDetection 导出PPYOLO 类型模型时报错AssertionError: Bad argument number for Assign: 2, expecting 3 解决记录


    详细报错记录:

    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 for additional 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

  • 相关阅读:
    IOC架构设计之ButterKnife源码&原理(二)下篇
    IOC架构设计之ButterKnife源码&原理(二)中篇
    IOC架构设计之ButterKnife源码&原理(二)上篇
    IOC架构设计之控制反转和依赖注入(一)
    RXJava之线程控制Scheduler(四)
    RXJava之变换(三)
    RXJava之扩展的观察者模式(二)
    微信小程序弹框提示绑定手环实例
    SpringBoot进阶教程 | 第四篇:整合Mybatis实现多数据源
    SpringCloud核心教程 | 第一篇: 使用Intellij中的Spring Initializr来快速构建Spring Cloud工程
  • 原文地址:https://www.cnblogs.com/GengMingYan/p/14955474.html
Copyright © 2020-2023  润新知