Toybrick

标题: ONNX转RKNN出现 Not Support Dtype: 2. please check precision! [打印本页]

作者: abo    时间: 2025-8-4 15:10
标题: ONNX转RKNN出现 Not Support Dtype: 2. please check precision!
我在对一个模型进行转换时,出现了Not Support Dtype: 2. please check precision!,找不到对应的问题出在哪
代码如下

from rknn.api import RKNN

rknn = RKNN(verbose=True, )

mean_values = [[0]*12]
std_values = [[1]*12]

rknn.config(
        mean_values = mean_values,
        std_values = std_values,
        # quant_img_RGB2BGR=False,
        target_platform='rk3588',
        float_dtype='float16',
        )

ret = rknn.load_onnx(model='./models/driving_vision.onnx')

ret = rknn.build(do_quantization=False, )

ret = rknn.export_rknn(export_path='./output/driving_vision.rknn')

rknn.release()


日志
I rknn building ...
I RKNN: [14:54:02.210] compress = 0, conv_eltwise_activation_fuse = 1, global_fuse = 1, multi-core-model-mode = 7, output_optimize = 1, layout_match = 1, enable_argb_group = 0, op_group_sram_opt = 0, enable_flash_attention = 0, op_group_nbuf_opt = 0, safe_fuse = 0
I RKNN: librknnc version: 2.3.2 (e045de294f@2025-04-07T19:48:25)
D RKNN: [14:54:02.376] RKNN is invoked
D RKNN: [14:54:02.926] >>>>>> start: rknn::RKNNExtractCustomOpAttrs
D RKNN: [14:54:02.926] <<<<<<<< end: rknn::RKNNExtractCustomOpAttrs
D RKNN: [14:54:02.926] >>>>>> start: rknn::RKNNSetOpTargetPass
D RKNN: [14:54:02.926] <<<<<<<< end: rknn::RKNNSetOpTargetPass
D RKNN: [14:54:02.926] >>>>>> start: rknn::RKNNBindNorm
D RKNN: [14:54:02.928] <<<<<<<< end: rknn::RKNNBindNorm
D RKNN: [14:54:02.928] >>>>>> start: rknn::RKNNEliminateQATDataConvert
D RKNN: [14:54:02.929] <<<<<<<< end: rknn::RKNNEliminateQATDataConvert
D RKNN: [14:54:02.929] >>>>>> start: rknn::RKNNConvStrideFixPass
D RKNN: [14:54:02.930] <<<<<<<< end: rknn::RKNNConvStrideFixPass
D RKNN: [14:54:02.930] >>>>>> start: rknn::RKNNTileGroupConv
D RKNN: [14:54:02.930] <<<<<<<< end: rknn::RKNNTileGroupConv
D RKNN: [14:54:02.931] >>>>>> start: rknn::RKNNAddConvBias
D RKNN: [14:54:02.932] <<<<<<<< end: rknn::RKNNAddConvBias
D RKNN: [14:54:02.932] >>>>>> start: rknn::RKNNTileChannel
D RKNN: [14:54:02.932] <<<<<<<< end: rknn::RKNNTileChannel
D RKNN: [14:54:02.932] >>>>>> start: rknn::RKNNDuplicateWeightPass
D RKNN: [14:54:02.932] <<<<<<<< end: rknn::RKNNDuplicateWeightPass
D RKNN: [14:54:02.932] >>>>>> start: rknn::RKNNInitRNNConst
D RKNN: [14:54:02.933] <<<<<<<< end: rknn::RKNNInitRNNConst
D RKNN: [14:54:02.933] >>>>>> start: rknn::RKNNPerChannelPrep
D RKNN: [14:54:02.933] <<<<<<<< end: rknn::RKNNPerChannelPrep
D RKNN: [14:54:02.933] >>>>>> start: rknn::RKNNBnQuant
D RKNN: [14:54:02.933] <<<<<<<< end: rknn::RKNNBnQuant
D RKNN: [14:54:02.933] >>>>>> start: rknn::RKNNFuseOptimizerPass
D RKNN: [14:54:02.987] <<<<<<<< end: rknn::RKNNFuseOptimizerPass
D RKNN: [14:54:02.987] >>>>>> start: rknn::RKNNTurnAutoPad
D RKNN: [14:54:02.987] <<<<<<<< end: rknn::RKNNTurnAutoPad
D RKNN: [14:54:02.987] >>>>>> start: rknn::RKNNInitCastConst
D RKNN: [14:54:02.987] <<<<<<<< end: rknn::RKNNInitCastConst
D RKNN: [14:54:02.987] >>>>>> start: rknn::RKNNMultiSurfacePass
D RKNN: [14:54:02.987] <<<<<<<< end: rknn::RKNNMultiSurfacePass
D RKNN: [14:54:02.987] >>>>>> start: rknn::RKNNReplaceConstantTensorPass
D RKNN: [14:54:02.989] <<<<<<<< end: rknn::RKNNReplaceConstantTensorPass
D RKNN: [14:54:02.989] >>>>>> start: rknn::RKNNSubgraphManager
D RKNN: [14:54:02.989] <<<<<<<< end: rknn::RKNNSubgraphManager
D RKNN: [14:54:02.989] >>>>>> start: OpEmit
D RKNN: [14:54:02.009] <<<<<<<< end: OpEmit
D RKNN: [14:54:02.009] >>>>>> start: rknn::RKNNAddFirstConv
D RKNN: [14:54:02.009] <<<<<<<< end: rknn::RKNNAddFirstConv
D RKNN: [14:54:02.009] >>>>>> start: rknn::RKNNTilingPass
D RKNN: [14:54:02.011] <<<<<<<< end: rknn::RKNNTilingPass
D RKNN: [14:54:02.011] >>>>>> start: rknn::RKNNLayoutMatchPass
D RKNN: [14:54:03.013] <<<<<<<< end: rknn::RKNNLayoutMatchPass
D RKNN: [14:54:03.013] >>>>>> start: rknn::RKNNAddSecondaryNode
D RKNN: [14:54:03.014] <<<<<<<< end: rknn::RKNNAddSecondaryNode
D RKNN: [14:54:03.014] >>>>>> start: rknn::RKNNAllocateConvCachePass
D RKNN: [14:54:03.014] <<<<<<<< end: rknn::RKNNAllocateConvCachePass
D RKNN: [14:54:03.014] >>>>>> start: OpEmit
E RKNN: [14:54:03.014] Not Support Dtype: 2. please check precision!
Aborted (core dumped)


作者: jefferyzhang    时间: 2025-8-5 08:52
opset版本是不是超出了rknn支持范围
作者: abo    时间: 2025-8-8 20:13
jefferyzhang 发表于 2025-8-5 08:52
opset版本是不是超出了rknn支持范围

不会的,rknn官方支持opsetv19,我尝试转换的模型为opsetv14,应该是没问题的
作者: abo    时间: 2025-8-9 10:58
jefferyzhang 发表于 2025-8-5 08:52
opset版本是不是超出了rknn支持范围

我尝试将输入的uint8 数据类型转为float16的数据类型后,再进行onnx->rknn,这种方式是可行的,所有具体原因是对uint8数据类型的不兼容




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3