PaddleDetection 导出PP-YOLO 类型模型时报错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
分类:
杂项
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!