I'm having trouble converting the model and need help.

Request for help. Device environment: CUDA 118, Ubuntu 20.04

Using device: Hailo8; Model: Custom network architecture: YOLOv11M; 4 detector heads: Minimal, Small, Medium, Large

Using Hailomz to convert the parser/nodes of cfg/networks/yolov11m.yaml, I have modified it to the detection structure required by my model. The first step, HAR conversion, was successful.

The problem encountered:

In the second step, when converting HAR quantization to HEF, I noticed that

cfg/grneic/yolov11m.alls

contains change_output_activation(conv74, sigmoid)

change_output_activation(conv90, sigmoid)

change_output_activation(conv105, sigmoid)

and postprocess_config/yolov11m_nms_config.json

are both basic three-detector head designs, which I cannot use. Also, I see that they are all named with names like conv74. The content of the postprocess_config/yolov11m_nms_config.json file is the same.

Can it be written directly in the form of /model.29/cv3.3/cv3.3.2/Conv?

Hoping to exchange technical ideas with everyone and unlock different ways to use Hailo AI!

Hi @cirs_jay

You can try our DeGirum cloud compiler to see if it helps: Early Access to DeGirum Cloud Compiler. If the modification is an extra detection head only, then our compiler can handle it.

Hey @cirs_jay,

Yes, absolutely! You can use the full layer names (like /model.29/cv3.3/cv3.3.2/Conv) instead of the generic ones (like conv74) in your .alls script and NMS config. Just make sure these names match what’s actually in your parsed model (the HAR file).

Here’s what you need to know:

The generic names like conv74 or conv90 are just internal labels created during parsing. They might not match your model’s actual structure, especially if you’re using a custom architecture or have a different number of detection heads. The best practice is to use the exact names from your parsed model. You can check these using tools like Netron or Hailo’s visualizer—just click on each node to see both the Hailo name and the original ONNX name.

If your model has custom detection heads, you’ll need to update both your .alls script and NMS config JSON with the correct output node names. Otherwise, the post-processing and activation changes won’t work properly.

What to do:

  1. Check your HAR file with Netron or hailo visualizer to find the exact output node names for your four detector heads
  2. Update your .alls script with these names, like:
    change_output_activation(/model.29/cv3.3/cv3.3.2/Conv, sigmoid)
    
  3. Update your NMS config JSON to reference these same node names
  4. Double-check everything matches between your .alls file and NMS config

Let me know if you run into issues!