rockchip-linux / rknn-toolkit2

BSD 3-Clause "New" or "Revised" License
874 stars 154 forks source link

Meet unsupported src layout for normalize: 2 #319

Open Eaglewzw opened 3 months ago

Eaglewzw commented 3 months ago

瑞芯微团队您们好, 在我进行RK3588 NPU推理过程中,我遇到了一个这样的问题: 我将一个模型的输出给到一个模型的输入,两个模型的具体架构如下:

=====================================================
model input num: 1, output num: 1
input tensors:
index=0, name=input1, n_dims=4, dims=[1, 127, 127, 3], n_elems=48387, size=96774, fmt=NHWC, type=FP16, qnt_type=AFFINE, zp=0, scale=1
output tensors:
index=0, name=output.1, n_dims=4, dims=[1, 96, 8, 8], n_elems=6144, size=12288, fmt=NCHW, type=FP16, qnt_type=AFFINE, zp=0, scale=1
=====================================================
model input num: 2, output num: 2
input tensors:
index=0, name=input1, n_dims=4, dims=[1, 8, 8, 96], n_elems=6144, size=12288, fmt=NHWC, type=FP16, qnt_type=AFFINE, zp=0, scale=1
index=1, name=input2, n_dims=4, dims=[1, 288, 288, 3], n_elems=248832, size=497664, fmt=NHWC, type=FP16, qnt_type=AFFINE, zp=0, scale=1
output tensors:
index=0, name=output.1, n_dims=4, dims=[1, 1, 18, 18], n_elems=324, size=648, fmt=NCHW, type=FP16, qnt_type=AFFINE, zp=0, scale=1
index=1, name=output.2, n_dims=4, dims=[1, 4, 18, 18], n_elems=1296, size=2592, fmt=NCHW, type=FP16, qnt_type=AFFINE, zp=0, scale=1

下面这部分是将第一个模型的数据结果给到第二个模型作为输入,可以看到我注意到第一个模型的输出是NCHW,所以也将第二个模型输入换成了NCHW,

    rknn_img[0].index = 0;
    rknn_img[0].type = RKNN_TENSOR_FLOAT16;
    rknn_img[0].size = zf[0].size;
    // rknn_img[0].fmt = RKNN_TENSOR_NHWC;
    rknn_img[0].fmt = RKNN_TENSOR_NCHW;
    rknn_img[0].buf = zf[0].buf;
    rknn_img[0].pass_through = 0;

    rknn_img[1].index = 1;
    rknn_img[1].type = RKNN_TENSOR_FLOAT16;
    rknn_img[1].size = rgb_16f.total() * rgb_16f.elemSize();
    rknn_img[1].fmt = RKNN_TENSOR_NHWC;
    rknn_img[1].buf = rgb_16f.data;

但是出现了下面的错误提示,是目前不支持这个模式吗?还是我的代码存在问题?

E RKNN: [15:18:34.320] Meet unsupported src layout for normalize: 2 E RKNN: [15:18:34.320] rknn_inputs_set, normalize error(-1) index=0