Toybrick

ONNX转RKNN出现 Not Support Dtype: 2. please check precision!

abo

新手上路

积分
17
楼主
发表于 2025-8-4 15:10:02    查看: 506|回复: 2 | [复制链接]    打印 | 只看该作者
我在对一个模型进行转换时,出现了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

版主

积分
15262
沙发
发表于 2025-8-5 08:52:22 | 只看该作者
opset版本是不是超出了rknn支持范围
回复

使用道具 举报

abo

新手上路

积分
17
板凳
 楼主| 发表于 2025-8-8 20:13:45 | 只看该作者
jefferyzhang 发表于 2025-8-5 08:52
opset版本是不是超出了rknn支持范围

不会的,rknn官方支持opsetv19,我尝试转换的模型为opsetv14,应该是没问题的
回复

使用道具 举报

abo

新手上路

积分
17
地板
 楼主| 发表于 2025-8-9 10:58:04 | 只看该作者
jefferyzhang 发表于 2025-8-5 08:52
opset版本是不是超出了rknn支持范围

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表