|
本帖最后由 肉盾局特工 于 2023-5-16 15:15 编辑
我想将基于onnxruntime的yolov8实例分割推理代码,用rknn推理框架移植到3566的开发板上,但是失败了。我有一下几点疑问:
1. 在转换模型的时候,未使用量化。onnx是fp32的,但是打印rknn的输入和输出节点信息,都是fp16的。如何导出fp32的模型?或者,因为我预处理之后的图片是CV_32FC3的,输入的格式是NHWC,该如何正确的设置输入节点信息并将输入buffer传递给input.buf?目前我已能正常进行预处理+推理+后处理,但结果对应不上。
2. 在while执行推理的时候会有内存泄露发生,不知道是哪里设置的不正确。
3. 3566这块开发板是否支持其他的推理框架,比如onnxruntime?
可以确定的是我onnxruntime的推理结果没问题,也没有内存泄露。
输入输出节点信息:
index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=1228800, size=2456700, fmt=NHWC, type=FP16, qnt_type=AFFINE, zp=0, scale=1.000000
index=0, name=output0, n_dims=4, dims=[1, 38, 8400, 1], n_elems=319200, size=638400, fmt=NCHW, type=FP16, qnt_type=AFFINE, zp=0, scale=1.000000
index=1, name=output1, n_dims=4, dims=[1, 32, 160, 160], n_elems=819200, size=1638400, fmt=NCHW, type=FP16, qnt_type=AFFINE, zp=0, scale=1.000000 | input[0].type应该选择 RKNN_TENSOR_FLOAT32 还是 RKNN_TENSOR_FLOAT16;
input[0].size = H * W * C * sizeof(float);
input[0].pass_through应该选择 false 还是 true;
input[0].buf = (void*)preProcessedMat.data;
output[0].want_float应该选择 false 还是 true?
output[1].want_float应该选择 false 还是 true?
|
|