PaddlePaddle/PaddleSeg

eiseg加载完照片后,点击照片标注时,闪退!!!!

jiangming7301 opened this issue · 0 comments

问题确认 Search before asking

Bug描述 Describe the Bug

我加载eiseg的轻量级通用场景的图像标注模型和照片后,点击照片闪退!,报如下错误:
Traceback (most recent call last):
File "C:\Users\WIN10\anaconda3\envs\pp39\Lib\site-packages\eiseg\app.py", line 2297, in canvasClick
self._canvasClickBySeg(x, y, isLeft)
File "C:\Users\WIN10\anaconda3\envs\pp39\Lib\site-packages\eiseg\app.py", line 2316, in _canvasClickBySeg
self.controller.addClick(x, y, isLeft)
File "C:\Users\WIN10\anaconda3\envs\pp39\Lib\site-packages\eiseg\controller.py", line 222, in addClick
pred = self.predictor.get_prediction(self.clicker)
File "C:\Users\WIN10\anaconda3\envs\pp39\Lib\site-packages\eiseg\inference\predictor\base.py", line 97, in get_prediction
pred_logits, pred_edges = self._get_prediction(image_nd, clicks_lists,
File "C:\Users\WIN10\anaconda3\envs\pp39\Lib\site-packages\eiseg\inference\predictor\base.py", line 158, in _get_prediction
self.net.run()
ValueError: In user code:

File "tools/export_model.py", line 111, in <module>
  main()
File "tools/export_model.py", line 107, in main
  run(FLAGS, cfg)
File "tools/export_model.py", line 73, in run
  trainer.export(FLAGS.output_dir)
File "/paddle/hk/PaddleDetection/ppdet/engine/trainer.py", line 718, in export
  static_model, pruned_input_spec = self._get_infer_cfg_and_input_spec(
File "/paddle/hk/PaddleDetection/ppdet/engine/trainer.py", line 696, in _get_infer_cfg_and_input_spec
  input_spec, static_model.forward.main_program,
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 542, in main_program
  concrete_program = self.concrete_program
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 458, in concrete_program
  return self.concrete_program_specify_input_spec(input_spec=None)
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 495, in concrete_program_specify_input_spec
  concrete_program, _ = self.get_concrete_program(
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 406, in get_concrete_program
  concrete_program, partial_program_layer = self._program_cache[cache_key]
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 723, in __getitem__
  self._caches[item] = self._build_once(item)
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 709, in _build_once
  concrete_program = ConcreteProgram.from_func_spec(
File "<decorator-gen-99>", line 2, in from_func_spec

File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/wrapped_decorator.py", line 25, in __impl__
  return wrapped_func(*args, **kwargs)
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/base.py", line 40, in __impl__
  return func(*args, **kwargs)
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 662, in from_func_spec
  outputs = static_func(*inputs)
File "/tmp/tmpiv903s30.py", line 99, in forward
  out = paddle.jit.dy2static.convert_ifelse(self.training, true_fn_5,
File "/paddle/anaconda3/lib/python3.8/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 "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/convert_operators.py", line 271, in _run_py_ifelse
  return true_fn(*true_args) if pred else false_fn(*false_args)
File "/tmp/tmpiv903s30.py", line 82, in false_fn_5
  ] = paddle.jit.dy2static.convert_while_loop(for_loop_condition_0,
File "/paddle/anaconda3/lib/python3.8/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 "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/convert_operators.py", line 59, in _run_py_while
  loop_vars = body(*loop_vars)
File "/paddle/hk/PaddleDetection/ppdet/modeling/architectures/meta_arch.py", line 75, in forward
  outs.append(self.get_pred())
File "/tmp/tmpcryqiqnk.py", line 42, in get_pred
  __return_value_0 = paddle.jit.dy2static.convert_ifelse(paddle.jit.
File "/paddle/anaconda3/lib/python3.8/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 "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/convert_operators.py", line 271, in _run_py_ifelse
  return true_fn(*true_args) if pred else false_fn(*false_args)
File "/tmp/tmpcryqiqnk.py", line 38, in false_fn_7
  __return_value_0, output = paddle.jit.dy2static.convert_ifelse(self
File "/paddle/anaconda3/lib/python3.8/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 "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/convert_operators.py", line 271, in _run_py_ifelse
  return true_fn(*true_args) if pred else false_fn(*false_args)
File "/paddle/hk/PaddleDetection/ppdet/modeling/architectures/picodet.py", line 89, in get_pred
  bbox_pred, bbox_num = self._forward()
File "/paddle/hk/PaddleDetection/ppdet/modeling/architectures/picodet.py", line 65, in _forward
  fpn_feats = self.neck(body_feats)
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/layers.py", line 914, in __call__
  outputs = self.forward(*inputs, **kwargs)
File "/tmp/tmpugf6t10o.py", line 36, in forward
  ] = paddle.jit.dy2static.convert_while_loop(for_loop_condition_1,
File "/paddle/anaconda3/lib/python3.8/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 "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/convert_operators.py", line 59, in _run_py_while
  loop_vars = body(*loop_vars)
File "/paddle/hk/PaddleDetection/ppdet/modeling/necks/lc_pan.py", line 137, in forward
  paddle.concat([upsample_feat, feat_low], 1))
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/tensor/manipulation.py", line 345, in concat
  return paddle.fluid.layers.concat(input=x, axis=axis, name=name)
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/layers/tensor.py", line 375, in concat
  helper.append_op(
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/layer_helper.py", line 43, in append_op
  return self.main_program.current_block().append_op(*args, **kwargs)
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/framework.py", line 3178, in append_op
  op = Operator(
File "/paddle/anaconda3/lib/python3.8/site-packages/paddle/fluid/framework.py", line 2224, in __init__
  for frame in traceback.extract_stack():

InvalidArgumentError: The 2-th dimension of input[0] and input[1] is expected to be equal.But received input[0]'s shape = [1, 96, 26, 26], input[1]'s shape = [1, 96, 25, 25].
  [Hint: Expected inputs_dims[0][j] == inputs_dims[i][j], but received inputs_dims[0][j]:26 != inputs_dims[i][j]:25.] (at ..\paddle/phi/kernels/funcs/concat_funcs.h:83)
  [operator < concat > error]

复现环境 Environment

OS:windows cpu
eiseg版本是1.1.1,paddleseg版本是2.7,paddle2.5,python3.9

Bug描述确认 Bug description confirmation

  • 我确认已经提供了Bug复现步骤、代码改动说明、以及环境信息,确认问题是可以复现的。I confirm that the bug replication steps, code change instructions, and environment information have been provided, and the problem can be reproduced.

是否愿意提交PR? Are you willing to submit a PR?

  • 我愿意提交PR!I'd like to help by submitting a PR!