When I run the "./snpe-onnx-to-dlc -i best.onnx -o best.dlc" command to convert the ONNX model to DLC, the following warning is generated:
/opt/snpe/lib/python/qti/aisw/converters/backend/ir_to_dlc.py:1037: RuntimeWarning: error_code=106; error_message=Incorrect/unsupported input dimensions is set. Layer MatMul_133: mismatch between 330 (400) and dimension of 1350 (1); error_component=System Configuration; line_no=1983; thread_id=140014041274176node.output_names[0])/opt/snpe/lib/python/qti/aisw/converters/backend/ir_to_dlc.py:341: RuntimeWarning: info_code=802; message=Layer parameter value is invalid in GPU. Layer 1351 : output width = 512, depth = 512 width * depth (packed) = 65536 exceeds maximum image width 16384 for Adreno A650; component=GPU Runtime; line_no=981; thread_id=140014041274176node.op.quantizable)/opt/snpe/lib/python/qti/aisw/converters/backend/ir_to_dlc.py:1037: RuntimeWarning: error_code=106; error_message=Incorrect/unsupported input dimensions is set. Layer MatMul_136: mismatch between 334 (400) and dimension of 1351 (1); error_component=System Configuration; line_no=1983; thread_id=140014041274176node.output_names[0])/opt/snpe/lib/python/qti/aisw/converters/backend/ir_to_dlc.py:341: RuntimeWarning: info_code=802; message=Layer parameter value is invalid in GPU. Layer 1352 : output width = 512, depth = 512 width * depth (packed) = 65536 exceeds maximum image width 16384 for Adreno A650; component=GPU Runtime; line_no=981; thread_id=140014041274176node.op.quantizable)/opt/snpe/lib/python/qti/aisw/converters/backend/ir_to_dlc.py:1037: RuntimeWarning: error_code=106; error_message=Incorrect/unsupported input dimensions is set. Layer MatMul_137: mismatch between 334 (400) and dimension of 1352 (1); error_component=System Configuration; line_no=1983; thread_id=140014041274176node.output_names[0])
INFO - INFO_CONVERSION_SUCCESS: Conversion completed successfully
Caused by: com.qualcomm.qti.snpe.SnpeError$NativeException: Unable to create network! Cause: error_code=106; error_message=Incorrect/unsupported input dimensions is set. error_code=106; error_message=Incorrect/unsupported input dimensions is set. Layer MatMul_133: mismatch between 330 (400) and dimension of 1350 (1); error_component=System Configuration; line_no=1983; thread_id=528295382192; error_component=System Configuration; line_no=267; thread_id=540330472696at com.qualcomm.qti.snpe.SnpeError.getSnpeNativeError(SnpeError.java:35)at com.qualcomm.qti.snpe.internal.NativeNetwork.<init>(NativeNetwork.java:83)at com.qualcomm.qti.snpe.SNPE$NeuralNetworkBuilder.build(SNPE.java:415)at com.lixiang.dip.ai.encryptpic.model.SnpeModelLoader.load(SnpeModelLoader.java:89)
Hi lewis_bo,
There is support for MatMul is already available in SNPE.
Please refer the URL given for the same, Snapdragon Neural Processing Engine SDK: Supported Network Layers (qualcomm.com)
Please try to cross-verify with the input shape you passed while converting the model to ONNX. or try to give input shape explicitly while converting.
Thanks & Regards,
Sahil Bandar