Skip to content

FAQ ​

Q&A ​

Which models support one-click conversion? ​

One-click conversion uses model workflows configured on the platform. Check the model type, target chip, backend version, and precision first. Uploading a .pt file does not establish support for an arbitrary PyTorch model. A custom model can still require ONNX export, calibration data, or a dedicated conversion workflow.

How do I handle ? or batchsize in an input shape? ​

These symbols identify dynamic dimensions. The current QNN context workflow uses input shapes selected during conversion. Set each dimension for the intended deployment. For batch size 1, [?, 3, 224, 224] can become [1, 3, 224, 224]. Do not replace every unknown dimension with 1.

For several input sizes, convert and validate a separate model for each size. Select the corresponding model at runtime. Internal operations with data-dependent shapes can still prevent conversion. Adding an operator or saving I/O metadata does not automatically resolve dynamic-shape limits.

Can I reuse a UDO for a missing operator? ​

A User Defined Operator (UDO) can provide an implementation absent from the backend. SNPE UDOs and QNN Op Packages use different interfaces. Do not interchange these packages directly.

The existing SNPE conversion path selects bundled UDO configuration from a built-in operator list. This does not provide general operator-asset matching and compatibility validation.

Reuse requires matching operator semantics, shapes, dtypes, chip, and SDK version. Both the converter and device runtime must load the required components. The current workflow has no unified entry point for automatic operator-asset matching and validation. A matching operator name alone does not establish compatibility.

For a missing operator, collect these details:

  • Model format, ONNX opset, and failing node.
  • Operator name, domain, attributes, input/output shapes, and dtypes.
  • Target chip, backend version, precision, and conversion logs.
  • A minimal model and input data for result validation.

Maintainers can then match an existing asset or implement and validate a new one. Do not remove an operator unless you have verified that the replacement workflow preserves model semantics.

Does AIMO reject all Transformers models? ​

No. Support depends on the model structure, conversion workflow, and target backend. The existing dedicated Whisper workflow also uses a Transformer structure. This does not establish one-click support for arbitrary Transformers models.

General large language models also need tokenization, KV caching, prompt processing, and token generation. Model partitioning, quantization, and device memory require dedicated adaptation. Adding one operator cannot replace these steps.

AIMO converts and optimizes models. AidLite loads supported conversion artifacts and executes tensor inference. AidGen provides generative-model runtime interfaces. AidVoice provides speech recognition, speech synthesis, and audio-processing workflows. These modules can work together. They do not replace each other.

Q: During model optimization, the process remains stuck in "converting" for a long time. Is it frozen or dead? ​

A: In the INT8 quantization options, different quantization methods and model sizes can significantly affect conversion time. If you select methods like ada_aimet, cle_aimet, or bc_snpe, the optimization process can take a very long time (possibly days). Be patient with ada_aimet and cle_aimet. If you want faster results, you can choose cle_snpe, enable_htp, or enable_hta as quantization methods.

Error Log ​

No.Description
1ERROR : [AIMET] Optimization is failed. Please consider disable ada or cle.AIMET does not support the selected method (cle_aimet or ada_aimet). Try using a different method.
2ERROR : ValueError: After pruning disconnected nodes, this model is empty. Encountered Error: After pruning disconnected nodes, this model is empty.Model issue: the model is empty and contains no valid nodes. Check the model and ensure it was uploaded correctly.
3ERROR : [DLC-QUAN] [ERROR] Invalid model for HBA quantization algorithm. Ensure there were batchnorms present prior to initial conversion, or reconvert.Caused by HTP quantization incompatibility with some model nodes. Avoid combining HTP with incompatible methods. Try HTP alone or combinations like HTP+CLE, CLE+BC, etc.
4ERROR : Node XXXX: 'Graph has no buffer XXX, referred to as input for XXX'Node in the model graph not found.
5ERROR : Model conversion failed due to non-existent or rigid pidAIMO service not started.
6ERROR : ValueError: Unsupported dynamic weights on tensor permute_0_0Model has dynamic weights or dynamic input, which is unsupported. Consider truncating the model.
7ERROR : Cutoff model is failed, please check nodes nameInput/output nodes or input shape values are incorrect. Check the model structure and fill in the correct values.
8Conversion FAILED: ERROR_TF_NODE_NOT_FOUND_IN_GRAPH: Node not found in graph. Node nameInput/output nodes or input shape values are incorrect. Check the model structure and fill in the correct values.
9status == QNN_BACKEND_NO_ERROR was not trueThe selected chip does not support conversion for certain operators in the model. Try a different chip or use a generic conversion strategy.
10AttributeError: 'UDOFactory' object has no attribute 'xxx'The model includes unsupported operators. Identify their location in the model. If they are at the beginning or end, consider using input/output node truncation to skip them. You may also manually modify the unconverted part or report the missing operators to the backend for support.
11[ERROR] 909 HTP FP16 not supported for this SoCThe quantization algorithm doesn't support this data format. Try disabling the CLE method.
12While converting to RKNN, error occurs: onnx.onnx_cpp2py_export.checker.ValidationError: Your model ir_version is higher than the checker's**The ONNX model version is too high. When exporting to ONNX, try setting opset to 12.
13When converting ONNX to DLC, even with correct output nodes, error occurs: failed, please check nodes name:xxx input_name:xxx output_name:xxxThe ONNX model version is too high. When exporting to ONNX, try setting opset to 12.
14During optimization: “SNPE HTP Offline Prepare: Could not assign any layer to the HTP” or “HTP FP16 not supported for this SoC”To resolve this, try unchecking CLE or CLE+BC methods and use only the basic SNPE quantization method with HTP.