Skip to content

got error when convert mmdet model to onnx model #709

@JustWeZero

Description

@JustWeZero

I got an error when calling tools/deploy.py,traceback is:
Traceback (most recent call last):
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/multiprocessing/process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/apis/core/pipeline_manager.py", line 107, in call
ret = func(*args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/apis/pytorch2onnx.py", line 101, in torch2onnx
optimize=optimize)
File "/home/group5/lzj/mmdeploy/mmdeploy/apis/core/pipeline_manager.py", line 356, in wrap
return self.call_function(func_name
, *args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/apis/core/pipeline_manager.py", line 326, in call_function
return self.call_function_local(func_name, *args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/apis/core/pipeline_manager.py", line 275, in call_function_local
return pipe_caller(*args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/apis/core/pipeline_manager.py", line 107, in call
ret = func(*args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/apis/onnx/export.py", line 132, in export
verbose=verbose)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/onnx/init.py", line 320, in export
custom_opsets, enable_onnx_checker, use_external_data_format)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/onnx/utils.py", line 111, in export
custom_opsets=custom_opsets, use_external_data_format=use_external_data_format)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/onnx/utils.py", line 729, in _export
dynamic_axes=dynamic_axes)
File "/home/group5/lzj/mmdeploy/mmdeploy/core/rewriters/rewriter_utils.py", line 373, in wrapper
return self.func(self, *args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/apis/onnx/optimizer.py", line 10, in model_to_graph__custom_optimizer
graph, params_dict, torch_out = ctx.origin_func(*args, **kwargs)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/onnx/utils.py", line 493, in _model_to_graph
graph, params, torch_out, module = _create_jit_graph(model, args)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/onnx/utils.py", line 437, in _create_jit_graph
graph, torch_out = _trace_and_get_graph_from_model(model, args)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/onnx/utils.py", line 388, in _trace_and_get_graph_from_model
torch.jit._get_trace_graph(model, args, strict=False, _force_outplace=False, _return_inputs_states=True)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/jit/_trace.py", line 1166, in _get_trace_graph
outs = ONNXTracedModule(f, strict, _force_outplace, return_inputs, _return_inputs_states)(*args, **kwargs)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/jit/_trace.py", line 132, in forward
self._force_outplace,
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/jit/_trace.py", line 118, in wrapper
outs.append(self.inner(*trace_inputs))
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "/home/group5/anaconda3/envs/SSPNet/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1090, in _slow_forward
result = self.forward(*input, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/core/rewriters/rewriter_utils.py", line 373, in wrapper
return self.func(self, *args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/codebase/mmdet/models/detectors/base.py", line 71, in base_detector__forward
return __forward_impl(ctx, self, img, img_metas=img_metas, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/core/optimizers/function_marker.py", line 261, in g
rets = f(*args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/codebase/mmdet/models/detectors/base.py", line 27, in __forward_impl
return self.simple_test(img, img_metas, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/core/rewriters/rewriter_utils.py", line 373, in wrapper
return self.func(self, *args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/codebase/mmdet/models/detectors/two_stage.py", line 58, in two_stage_detector__simple_test
proposals, _ = self.rpn_head.simple_test_rpn(x, img_metas)
File "/home/group5/lzj/mmdetection/mmdet/models/dense_heads/dense_test_mixins.py", line 125, in simple_test_rpn
proposal_list = self.get_bboxes(*rpn_outs, img_metas)
File "/home/group5/lzj/mmdeploy/mmdeploy/core/rewriters/rewriter_utils.py", line 373, in wrapper
return self.func(self, *args, **kwargs)
File "/home/group5/lzj/mmdeploy/mmdeploy/codebase/mmdet/models/dense_heads/rpn_head.py", line 123, in rpn_head__get_bboxes
max_shape=img_metas[0]['img_shape'])
TypeError: 'NoneType' object is not subscriptable

while I found,in dense_test_mixins.py,line 125:
"proposal_list = self.get_bboxes(*rpn_outs, img_metas)"
I can got correct img_metas,but in mmdeploy rpn_head.py,line 123:
max_shape=img_metas[0]['img_shape'])
It seems like the variable "img_metas" didn't pass correctly.so is this a bug?or how can I fix it?please help.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions