Hello,
I’m trying to parse my ONNX model (fastbev_pre_trt.onnx
) using the Hailo parser. However, I consistently get the following error:
(hailo_venv) (base) mdh@homebody:~/Documents/CUDA-FastBEV/model/resnet18$ hailo parser onnx fastbev_pre_trt.onnx --har-path ./fastbev_pre_trt.har
[info] Current Time: 14:43:44, 07/14/25
[info] CPU: Architecture: x86_64, Model: AMD Ryzen 5 PRO 5650GE with Radeon Graphics, Number Of Cores: 12, Utilization: 0.3%
[info] Memory: Total: 14GB, Available: 9GB
[info] System info: OS: Linux, Kernel: 6.8.0-40-generic
[info] Hailo DFC Version: 3.30.0
[info] HailoRT Version: 4.20.0
[info] PCIe: No Hailo PCIe device was found
[info] Running `hailo parser onnx fastbev_pre_trt.onnx --har-path ./fastbev_pre_trt.har`
[info] Translation started on ONNX model fastbev_pre_trt
[info] Restored ONNX model fastbev_pre_trt (completion time: 00:00:00.19)
[info] Extracted ONNXRuntime meta-data for Hailo model (completion time: 00:00:00.68)
[info] Simplified ONNX model for a parsing retry attempt (completion time: 00:00:02.58)
Traceback (most recent call last):
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 239, in translate_onnx_model
parsing_results = self._parse_onnx_model_to_hn(
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 320, in _parse_onnx_model_to_hn
return self.parse_model_to_hn(
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 371, in parse_model_to_hn
fuser = HailoNNFuser(converter.convert_model(), net_name, converter.end_node_names)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/translator.py", line 92, in convert_model
self._calculate_shapes(validate_shapes=False)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/onnx_translator/onnx_translator.py", line 203, in _calculate_shapes
self._layers_graph.calculate_shapes(meta_edges_graph=self._meta_graph, validate_shapes=validate_shapes)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/hailo_nn.py", line 750, in calculate_shapes
self.update_input_shapes_from_predecessors(layer)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/hailo_nn.py", line 815, in update_input_shapes_from_predecessors
layer.input_shapes = input_shapes
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/hn_layers/layer.py", line 538, in input_shapes
self.set_input_shapes(input_shapes)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/hn_layers/conv2d.py", line 575, in set_input_shapes
raise UnsupportedModelError(
hailo_sdk_common.hailo_nn.exceptions.UnsupportedModelError: Invalid kernel shape for base conv layer base_conv7 (translated from Conv_17).
Either the input shape doesn't match the kernel shape, or the calculated groups number doesn't match the expected ratio between kernel shape and input shape.
Kernel features: 384 Input features: 64 Groups: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/tools/parser_cli.py", line 201, in run
runner = self._parse(net_name, args, tensor_shapes)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/tools/parser_cli.py", line 287, in _parse
runner.translate_onnx_model(
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/states/states.py", line 16, in wrapped_func
return func(self, *args, **kwargs)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/runner/client_runner.py", line 1177, in translate_onnx_model
parser.translate_onnx_model(
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 280, in translate_onnx_model
parsing_results = self._parse_onnx_model_to_hn(
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 320, in _parse_onnx_model_to_hn
return self.parse_model_to_hn(
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 371, in parse_model_to_hn
fuser = HailoNNFuser(converter.convert_model(), net_name, converter.end_node_names)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/translator.py", line 92, in convert_model
self._calculate_shapes(validate_shapes=False)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/onnx_translator/onnx_translator.py", line 203, in _calculate_shapes
self._layers_graph.calculate_shapes(meta_edges_graph=self._meta_graph, validate_shapes=validate_shapes)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/hailo_nn.py", line 750, in calculate_shapes
self.update_input_shapes_from_predecessors(layer)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/hailo_nn.py", line 815, in update_input_shapes_from_predecessors
layer.input_shapes = input_shapes
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/hn_layers/layer.py", line 538, in input_shapes
self.set_input_shapes(input_shapes)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/hailo_nn/hn_layers/conv2d.py", line 575, in set_input_shapes
raise UnsupportedModelError(
hailo_sdk_common.hailo_nn.exceptions.UnsupportedModelError: Invalid kernel shape for base conv layer base_conv7 (translated from Conv_17).
Either the input shape doesn't match the kernel shape, or the calculated groups number doesn't match the expected ratio between kernel shape and input shape.
Kernel features: 384 Input features: 64 Groups: 0
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/bin/hailo", line 8, in <module>
sys.exit(main())
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/tools/cmd_utils/main.py", line 111, in main
ret_val = client_command_runner.run()
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_platform/tools/hailocli/main.py", line 64, in run
ret_val = self._run(argv)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_platform/tools/hailocli/main.py", line 111, in _run
return args.func(args)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/tools/parser_cli.py", line 226, in run
raise ParserCLIException(str(err).replace("net_input_format", "input_format")) from err
hailo_sdk_client.tools.parser_cli.ParserCLIException: Invalid kernel shape for base conv layer base_conv7 (translated from Conv_17).
Either the input shape doesn't match the kernel shape, or the calculated groups number doesn't match the expected ratio between kernel shape and input shape.
Kernel features: 384 Input features: 64 Groups: 0
Upon inspection in Netron, Conv_17
is part of a residual branch in a parallel structure. The input to Conv_17
comes from a shared tensor (node 264
), which is also connected to other Conv layers. This appears to cause a shape inference error during parsing — I suspect Hailo is misinterpreting the structure as a serial chain rather than parallel branches.
So I’ve tried manually set input tensor shapes using --tensor-shapes.
(hailo_venv) (base) mdh@homebody:~/Documents/CUDA-FastBEV/model/resnet18$ hailo parser onnx fastbev_pre_trt.onnx --har-path fastbev_pre_trt.har --tensor-shapes 264=[6,64,64,176] 469=[6,128,32,88]
[info] Current Time: 17:07:26, 07/17/25
[info] CPU: Architecture: x86_64, Model: AMD Ryzen 5 PRO 5650GE with Radeon Graphics, Number Of Cores: 12, Utilization: 0.3%
[info] Memory: Total: 14GB, Available: 8GB
[info] System info: OS: Linux, Kernel: 6.8.0-40-generic
[info] Hailo DFC Version: 3.30.0
[info] HailoRT Version: 4.20.0
[info] PCIe: No Hailo PCIe device was found
[info] Running `hailo parser onnx fastbev_pre_trt.onnx --har-path fastbev_pre_trt.har --tensor-shapes 264=[6,64,64,176] 469=[6,128,32,88]`
[info] Translation started on ONNX model fastbev_pre_trt
[info] Restored ONNX model fastbev_pre_trt (completion time: 00:00:00.18)
[info] Extracted ONNXRuntime meta-data for Hailo model (completion time: 00:00:00.67)
Traceback (most recent call last):
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/tools/parser_cli.py", line 201, in run
runner = self._parse(net_name, args, tensor_shapes)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/tools/parser_cli.py", line 287, in _parse
runner.translate_onnx_model(
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_common/states/states.py", line 16, in wrapped_func
return func(self, *args, **kwargs)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/runner/client_runner.py", line 1177, in translate_onnx_model
parser.translate_onnx_model(
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 223, in translate_onnx_model
net_input_shapes = self._handle_input_shapes_or_format(onnx_model, net_input_shapes, start_node_names)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 135, in _handle_input_shapes_or_format
raise UnsupportedModelError(f"start_node_names and net_input_{arg_name} keys must contain the same names.")
hailo_sdk_common.hailo_nn.exceptions.UnsupportedModelError: start_node_names and net_input_shapes keys must contain the same names.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/bin/hailo", line 8, in <module>
sys.exit(main())
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/tools/cmd_utils/main.py", line 111, in main
ret_val = client_command_runner.run()
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_platform/tools/hailocli/main.py", line 64, in run
ret_val = self._run(argv)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_platform/tools/hailocli/main.py", line 111, in _run
return args.func(args)
File "/home/mdh/Downloads/hailo_ai_sw_suite/hailo_venv/lib/python3.10/site-packages/hailo_sdk_client/tools/parser_cli.py", line 226, in run
raise ParserCLIException(str(err).replace("net_input_format", "input_format")) from err
hailo_sdk_client.tools.parser_cli.ParserCLIException: start_node_names and net_input_shapes keys must contain the same names.
None of these resolved the shape propagation issue in this branch.
My questions are:
- How can I prevent the parser from misinterpreting fan-out branches during Conv layer shape inference?
- Is there a sample or recommended way to explicitly define tensor shapes for each branch (e.g. via
--tensor-shapes
) in a model with network branching, so that Hailo can parse it into HAR format correctly?
Thank you in advance for your support!