Tool/software:
I am currently on the SDK 10.1 for SK-AM62A-LP. I am trying to train and compile a yolox-nano-lite model using the branch r10.1 from edgeai-tensorlab. My dataset follows the standard COCO format. I have tried two ways of doing the same -
1. Using edgeai-mmdetection for model training and using edgeai-benchmark for compiling the model. I convert the trained pytorch weights to ONNX and then compile it generate artifacts for inference.
2. Using edgeai-modelmaker's config-detection.yaml with the run_modelmaker.py script, on my dataset in the COCO format.
For the first approach with edgeai-mmdetection I am able to get the trained model and the corresponding ONNX and proto files, using tools/train.py. I have referred the tutorials mentioned in the edgeai-benchmark for compiling the model, but getting mAP = 0 after compilation of the model. I have kept the tensor_bits = 32 so that no calibration is needed and we can directly just compile the model.
[34m
INFO:[33m20250726-065738: starting - [39mod-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx
[34m
INFO:[33m20250726-065738: running - [39mod-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx
[34m
INFO:[33m20250726-065738: pipeline_config - [39m{'task_type': 'detection', 'dataset_category': 'coco', 'calibration_dataset': <edgeai_benchmark.datasets.coco_det.COCODetection object at 0x7fb038d2c3d0>, 'input_dataset': <edgeai_benchmark.datasets.coco_det.COCODetection object at 0x7fb038d2c400>, 'preprocess': <edgeai_benchmark.preprocess.PreProcessTransforms object at 0x7fafff3d6680>, 'session': <edgeai_benchmark.sessions.onnxrt_session.ONNXRTSession object at 0x7fafff3d6380>, 'postprocess': <edgeai_benchmark.postprocess.PostProcessTransforms object at 0x7fafff3d65f0>, 'metric': {'label_offset_pred': {0: 1, -1: 0, 1: 2}}}
[34m
INFO:[33m20250726-065738: import - [39mod-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx - this may take some time...
[34mINFO:[33m20250726-065738: model_path - [39m/opt/code/edgeai-mmdetection/work_dirs/2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64/onnx_exports/yolox_nano_lite_dump.onnx
[34mINFO:[33m20250726-065738: model_file - [39m/opt/code/edgeai-benchmark/work_dirs_custom/modelartifacts/32bits/od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx/model/yolox_nano_lite_dump.onnx
[34mINFO:[33m20250726-065738: quant_file - [39m/opt/code/edgeai-benchmark/work_dirs_custom/modelartifacts/32bits/od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx/model/yolox_nano_lite_dump_qparams.prototxt
Downloading 1/1: /opt/code/edgeai-mmdetection/work_dirs/2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64/onnx_exports/yolox_nano_lite_dump.onnx
Download done for /opt/code/edgeai-mmdetection/work_dirs/2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64/onnx_exports/yolox_nano_lite_dump.onnx
Downloading 1/1: /opt/code/edgeai-mmdetection/work_dirs/2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64/onnx_exports/yolox_nano_lite_dump.onnx
Download done for /opt/code/edgeai-mmdetection/work_dirs/2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64/onnx_exports/yolox_nano_lite_dump.onnx
Converted model is valid!
[33m[TIDL Import] WARNING: tensor_bits = 32, Compiling for floating point - target execution is not supported for 32 bit compilation[0m
[35;1m========================= [Model Compilation Started] =========================
[0mModel compilation will perform the following stages:
1. Parsing
2. Graph Optimization
3. Quantization & Calibration
4. Memory Planning
[35;1m============================== [Version Summary] ==============================
[0m-------------------------------------------------------------------------------
| TIDL Tools Version | [32;1m10_01_04_00[0m |
-------------------------------------------------------------------------------
| C7x Firmware Version | [32;1m10_01_00_01[0m |
-------------------------------------------------------------------------------
| Runtime Version | [32;1m1.15.0[0m |
-------------------------------------------------------------------------------
| Model Opset Version | [32;1m17[0m |
-------------------------------------------------------------------------------
[35;1m============================== [Parsing Started] ==============================
[0myolox is meta arch name
yolox
Number of OD backbone nodes = 191
Size of odBackboneNodeIds = 191
------------------------- Subgraph Information Summary -------------------------
-------------------------------------------------------------------------------
| Core | No. of Nodes | Number of Subgraphs |
-------------------------------------------------------------------------------
| C7x | 267 | 3 |
| CPU | 4 | x |
-------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
| Node | Node Name | Reason |
------------------------------------------------------------------------------------------------------------------------
| Transpose | 6 | For firmware version < 10_01_04_00, only permutes are suported when number of dimensions > 4 |
| MaxPool | 79 | Kernel size (13x13) with stride (1x1) not supported |
| MaxPool | 78 | Kernel size (9x9) with stride (1x1) not supported |
| MaxPool | 77 | Kernel size (5x5) with stride (1x1) not supported |
------------------------------------------------------------------------------------------------------------------------
[35;1m============================= [Parsing Completed] =============================
[0m[35;1m==================== [Optimization for subgraph_0 Started] ====================
[0m----------------------------- Optimization Summary -----------------------------
------------------------------------------------------------------------------
| Layer | Nodes before optimization | Nodes after optimization |
------------------------------------------------------------------------------
| TIDL_BatchNormLayer | 0 | 1 |
| TIDL_EltWiseLayer | 2 | [32;1m0[0m |
| TIDL_CastLayer | 1 | [32;1m0[0m |
------------------------------------------------------------------------------
[35;1m=================== [Optimization for subgraph_0 Completed] ===================
[0mThe soft limit is 10240
The hard limit is 10240
MEM: Init ... !!!
MEM: Init ... Done !!!
0.0s: VX_ZONE_INIT:Enabled
0.9s: VX_ZONE_ERROR:Enabled
0.10s: VX_ZONE_WARNING:Enabled
0.8996s: VX_ZONE_INIT:[tivxInit:190[34m
INFO:[33m20250726-065752: import completed - [39mod-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx - 14 sec
[32m
SUCCESS:[33m20250726-065752: benchmark results - [39m{}
] Initialization Done !!!
[35;1m============= [Quantization & Calibration for subgraph_0 Started] =============
[0m[35;1m==================== [Optimization for subgraph_1 Started] ====================
[0m----------------------------- Optimization Summary -----------------------------
--------------------------------------------------------------------------------
| Layer | Nodes before optimization | Nodes after optimization |
--------------------------------------------------------------------------------
| TIDL_EltWiseLayer | 7 | 7 |
| TIDL_ConcatLayer | 3 | 3 |
| TIDL_ReLULayer | 29 | [32;1m0[0m |
| TIDL_ConvolutionLayer | 29 | 29 |
--------------------------------------------------------------------------------
[35;1m=================== [Optimization for subgraph_1 Completed] ===================
[0m[35;1m============= [Quantization & Calibration for subgraph_1 Started] =============
[0mTIDL Meta pipeLine (proto) file : /opt/code/edgeai-benchmark/work_dirs_custom/modelartifacts/32bits/od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx/model/yolox_nano_lite_dump.prototxt
yolox
yolox
[35;1m==================== [Optimization for subgraph_2 Started] ====================
[0m[33m[TIDL Import] [PARSER] WARNING: Requested output data convert layer is not added to the network, It is currently not optimal[0m
[33m[TIDL Import] [PARSER] WARNING: Requested output data convert layer is not added to the network, It is currently not optimal[0m
----------------------------- Optimization Summary -----------------------------
-------------------------------------------------------------------------------------
| Layer | Nodes before optimization | Nodes after optimization |
-------------------------------------------------------------------------------------
| TIDL_OdOutputReformatLayer | 0 | 2 |
| TIDL_DetectionOutputLayer | 0 | 1 |
| TIDL_ResizeLayer | 2 | 2 |
| TIDL_ConvolutionLayer | 54 | 54 |
| TIDL_ReLULayer | 45 | [32;1m0[0m |
| TIDL_ConcatLayer | 13 | 13 |
-------------------------------------------------------------------------------------
[35;1m=================== [Optimization for subgraph_2 Completed] ===================
[0m[35;1m============= [Quantization & Calibration for subgraph_2 Started] =============
[0mMEM: Deinit ... !!!
MEM: Alloc's: 86 alloc's of 196291083 bytes
MEM: Free's : 86 free's of 196291083 bytes
MEM: Open's : 0 allocs of 0 bytes
MEM: Deinit ... Done !!!
[34m
INFO:[33m20250726-065752: starting - [39mod-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx
[34m
INFO:[33m20250726-065752: running - [39mod-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx
[34m
INFO:[33m20250726-065752: pipeline_config - [39m{'task_type': 'detection', 'dataset_category': 'coco', 'calibration_dataset': <edgeai_benchmark.datasets.coco_det.COCODetection object at 0x7fb038d2c3d0>, 'input_dataset': <edgeai_benchmark.datasets.coco_det.COCODetection object at 0x7fb038d2c400>, 'preprocess': <edgeai_benchmark.preprocess.PreProcessTransforms object at 0x7fafff3d6680>, 'session': <edgeai_benchmark.sessions.onnxrt_session.ONNXRTSession object at 0x7fafff3d6380>, 'postprocess': <edgeai_benchmark.postprocess.PostProcessTransforms object at 0x7fafff3d65f0>, 'metric': {'label_offset_pred': {0: 1, -1: 0, 1: 2}}}
[34m
INFO:[33m20250726-065752: infer - [39mod-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx - this may take some time...
[34mINFO:[33m20250726-065752: model_path - [39m/opt/code/edgeai-mmdetection/work_dirs/2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64/onnx_exports/yolox_nano_lite_dump.onnx
[34mINFO:[33m20250726-065752: model_file - [39m/opt/code/edgeai-benchmark/work_dirs_custom/modelartifacts/32bits/od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx/model/yolox_nano_lite_dump.onnx
[34mINFO:[33m20250726-065752: quant_file - [39m/opt/code/edgeai-benchmark/work_dirs_custom/modelartifacts/32bits/od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx/model/yolox_nano_lite_dump_qparams.prototxt
infer : od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_l| 0%| || 0/100 [00:00<?, ?it/s]
infer : od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_l| | 0% 0/100| [< ]
infer : od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_l| 51%|█████ || 51/100 [00:10<00:09, 5.06it/s]
infer : od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_l| 100%|██████████|| 100/100 [00:19<00:00, 5.23it/s]
[34m
INFO:[33m20250726-065812: infer completed - [39mod-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx - 19 sec
[32m
SUCCESS:[33m20250726-065812: benchmark results - [39m{'infer_path': 'od-mlpefmnv1_onnxrt_2025_07_09_11_31_38_yolox_nano_lite_dump_ep300_lr0.002_b64_onnx_exports_yolox_nano_lite_dump_onnx', 'accuracy_ap[.5:.95]%': 0.0, 'accuracy_ap50%': 0.0, 'num_subgraphs': 3}
libtidl_onnxrt_EP loaded 0x56250a2aa320
Final number of subgraphs created are : 3, - Offloaded Nodes - 267, Total Nodes - 271
The soft limit is 10240
The hard limit is 10240
MEM: Init ... !!!
MEM: Init ... Done !!!
0.0s: VX_ZONE_INIT:Enabled
0.11s: VX_ZONE_ERROR:Enabled
0.12s: VX_ZONE_WARNING:Enabled
0.4419s: VX_ZONE_INIT:[tivxInit:190] Initialization Done !!!
MEM: Deinit ... !!!
MEM: Alloc's: 86 alloc's of 196291083 bytes
MEM: Free's : 86 free's of 196291083 bytes
MEM: Open's : 0 allocs of 0 bytes
MEM: Deinit ... Done !!!
For the second approach I have used edgeai-modelmaker and modified the default config_detection.yaml to use my COCO format dataset. The compilation in this case gets completed with errors such as "Invalid Layer Name /multi_level_conv_cls.0/Conv_output_0". Attaching the compilation log for the same -
modelmaler_compilation_run.log
I have validated that I am able to get predictions from the model in the ONNX format and it's mAP is not zero. However I am facing the above issues while trying to compile the models for inference on the SK-AM62A-LP SOC. I have uploaded the logs I felt necessary for conveying this issue. Do let me know should you require any additional files for debugging. Please suggest the potential issues and solutions.
Thank you


