Closed PlayerJian closed 3 weeks ago
设置full_graph=True之后报这个错,咋回事
Traceback (most recent call last):
File "E:\workspace\project\pro_paddle\PaddleDetection\tools\export_model.py", line 110, in <module>
main()
File "E:\workspace\project\pro_paddle\PaddleDetection\tools\export_model.py", line 106, in main
run(FLAGS, cfg)
File "E:\workspace\project\pro_paddle\PaddleDetection\tools\export_model.py", line 73, in run
trainer.export(FLAGS.output_dir)
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\engine\trainer.py", line 1170, in export
static_model, pruned_input_spec = self._get_infer_cfg_and_input_spec(
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\engine\trainer.py", line 1130, in _get_infer_cfg_and_input_spec
input_spec, static_model.forward.main_program,
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\jit\dy2static\program_translator.py", line 1062, in main_program
concrete_program = self.concrete_program
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\jit\dy2static\program_translator.py", line 941, in concrete_program
return self.concrete_program_specify_input_spec(input_spec=None)
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\jit\dy2static\program_translator.py", line 986, in concrete_program_specify_input_spec
concrete_program, _ = self.get_concrete_program(
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\jit\dy2static\program_translator.py", line 875, in get_concrete_program
concrete_program, partial_program_layer = self._program_cache[
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\jit\dy2static\program_translator.py", line 1648, in __getitem__
self._caches[item_id] = self._build_once(item)
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\jit\dy2static\program_translator.py", line 1575, in _build_once
concrete_program = ConcreteProgram.from_func_spec(
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\base\wrapped_decorator.py", line 26, in __impl__
return wrapped_func(*args, **kwargs)
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\base\dygraph\base.py", line 68, in __impl__
return func(*args, **kwargs)
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\jit\dy2static\program_translator.py", line 1346, in from_func_spec
error_data.raise_new_exception()
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\jit\dy2static\error.py", line 452, in raise_new_exception
raise new_exception from None
IndexError: In transformed code:
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\architectures\meta_arch.py", line 59, in forward
if self.training:
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\architectures\meta_arch.py", line 69, in forward
for inp in inputs_list:
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\architectures\meta_arch.py", line 76, in forward
outs.append(self.get_pred())
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\architectures\faster_rcnn.py", line 121, in get_pred
if self.use_extra_data:
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\architectures\faster_rcnn.py", line 125, in get_pred
bbox_pred, bbox_num = self._forward()
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\architectures\faster_rcnn.py", line 79, in _forward
if self.training:
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\architectures\faster_rcnn.py", line 89, in _forward
bbox, bbox_num, nms_keep_idx = self.bbox_post_process(preds, (rois, rois_num),
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\post_process.py", line 68, in __call__
if self.nms is not None:
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\post_process.py", line 69, in __call__
bboxes, score = self.decode(head_out, rois, im_shape, scale_factor)
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\layers.py", line 461, in __call__
if self.export_onnx:
File "E:\workspace\project\pro_paddle\PaddleDetection\ppdet\modeling\layers.py", line 463, in __call__
if self.export_onnx:
onnx_rois_num_per_im = rois_num[0]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
origin_shape = paddle.expand(im_shape[0, :],
[onnx_rois_num_per_im, 2])
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\base\framework.py", line 2500, in __getitem__
return _getitem_static(self, item)
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\base\variable_index.py", line 800, in _getitem_static
) = parse_index(x, indices)
File "D:\anaconda3\envs\paddle_gpu\lib\site-packages\paddle\base\variable_index.py", line 300, in parse_index
and x.shape[dim] is not None
IndexError: tuple index out of range
你用的那个模型 修改啥了嘛
问题确认 Search before asking
Bug组件 Bug Component
No response
Bug描述 Describe the Bug
static_model.forward.main_program,报错Can't call main_program when full_graph=False. Use paddle.jit.to_static(full_graph=True) instead.
设置full_graph=True还有别的错
复现环境 Environment
windows paddle2.6.1 gpu,cuda11.6 paddledection2.6.0 命令
Bug描述确认 Bug description confirmation
是否愿意提交PR? Are you willing to submit a PR?