|  | 
 
| 正在把 torch 模型 通过 torch->onnx->rknn 做转化 pytorch 模型的输入是一个 list, 由 5 个 tensor 组成,形状如下:
 [(1, 64, 64, 64),  # 262144
 (1, 64, 32, 32),  # 65536
 (1, 64, 16, 16),  # 16384
 (1, 64, 8, 8),  # 4096
 (1, 64, 4, 4)]  # 1024
 
 
 转换成 onnx 模型后可以正常推理,且输出一致
 
 可以转换成 rknn 模型,但推理时报错如下:
 --> Running model
 W RKNNAPI: warning: inputs[0] expected input len is 16384, but actual len is 262144!
 W RKNNAPI: warning: inputs[1] expected input len is 1024, but actual len is 65536!
 E RKNNAPI: rknn_input_set,  inputs[2].buf wrong, buf = 0x2909b790, size = 65536 (min_size = 262144)!
 E Catch exception when setting inputs.
 E Traceback (most recent call last):
 E   File "rknn/api/rknn_base.py", line 1109, in rknn.api.rknn_base.RKNNBase.inference
 E   File "rknn/api/rknn_base.py", line 998, in rknn.api.rknn_base.RKNNBase.set_inputs
 E   File "rknn/api/rknn_runtime.py", line 422, in rknn.api.rknn_runtime.RKNNRuntime.set_inputs
 E Exception: Set inputs failed. error code: RKNN_ERR_PARAM_INVALID
 Traceback (most recent call last):
 File "Regressor_experimanet_rknn_from_onnx_runtime.py", line 52, in <module>
 print('rknn_outputs length: ', len(rknn_outputs))
 TypeError: object of type 'NoneType' has no len()
 
 
 很显然 inputs[0], inputs[1], inputs[2] 的形状和pytorch 模型的输入形状不一致
 而且如果给 rknn 模型传入一个 tensor 的话,还会报错说 inputs 需要有5个
 所以有两个问题
 1. 如何能得到 rknn 模型要求的输入的形状
 2. 多输入的情况下, 如何满足 nhwc 的要求
 
 谢谢
 真的非常迷茫,研究转换好久了,还是一直有各种问题,不知道是不是方法不对。。。
 
 | 
 |