I’m trying to convert the quite recent RFDETR from Roboflow and got this error during conversion:
[info] Translation started on ONNX model inference_model_sim
[info] Restored ONNX model inference_model_sim (completion time: 00:00:00.44)
[info] Extracted ONNXRuntime meta-data for Hailo model (completion time: 00:00:01.61)
[info] Simplified ONNX model for a parsing retry attempt (completion time: 00:00:05.93)
Traceback (most recent call last):
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 235, in translate_onnx_model
parsing_results = self._parse_onnx_model_to_hn(
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 316, in _parse_onnx_model_to_hn
return self.parse_model_to_hn(
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 367, in parse_model_to_hn
fuser = HailoNNFuser(converter.convert_model(), net_name, converter.end_node_names)
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/translator.py", line 83, in convert_model
self._create_layers()
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/edge_nn_translator.py", line 39, in _create_layers
self._update_vertices_info()
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/onnx_translator/onnx_translator.py", line 217, in _update_vertices_info
node.update_output_format()
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/onnx_translator/onnx_graph.py", line 475, in update_output_format
self.output_format = self.get_matmul_layer_info()[-1]
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/onnx_translator/onnx_graph.py", line 4050, in get_matmul_layer_info
elif pred1.op == "Transpose":
AttributeError: 'NoneType' object has no attribute 'op'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/louis/Downloads/rf-detr-test/convert.py", line 36, in <module>
main()
File "/home/louis/Downloads/rf-detr-test/convert.py", line 15, in main
_ = runner.translate_onnx_model(
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_common/states/states.py", line 16, in wrapped_func
return func(self, *args, **kwargs)
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/runner/client_runner.py", line 1158, in translate_onnx_model
parser.translate_onnx_model(
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 276, in translate_onnx_model
parsing_results = self._parse_onnx_model_to_hn(
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 316, in _parse_onnx_model_to_hn
return self.parse_model_to_hn(
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/sdk_backend/parser/parser.py", line 367, in parse_model_to_hn
fuser = HailoNNFuser(converter.convert_model(), net_name, converter.end_node_names)
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/translator.py", line 83, in convert_model
self._create_layers()
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/edge_nn_translator.py", line 39, in _create_layers
self._update_vertices_info()
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/onnx_translator/onnx_translator.py", line 217, in _update_vertices_info
node.update_output_format()
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/onnx_translator/onnx_graph.py", line 475, in update_output_format
self.output_format = self.get_matmul_layer_info()[-1]
File "/home/louis/Downloads/rf-detr-test/.venv/lib/python3.10/site-packages/hailo_sdk_client/model_translator/onnx_translator/onnx_graph.py", line 4050, in get_matmul_layer_info
elif pred1.op == "Transpose":
AttributeError: 'NoneType' object has no attribute 'op'
I struggle to understand the culprit of the issue.
To reproduce, here is the code I used for conversion:
from rfdetr import RFDETRBase
from hailo_sdk_client import ClientRunner
# Convert RFDETR to ONNX
model = RFDETRBase()
model.export()
# Convert model to HAILO8
runner = ClientRunner(hw_arch="hailo8")
runner.translate_onnx_model(
model="output/inference_model.onnx",
net_name="rfdetr",
start_node_names=["input"],
end_node_names=["dets", "labels"],
net_input_shapes={"input": (1, 3, 560, 560)},
)