他的回复:
问题解决了,是模型的问题,在Hilens studio上的c76模型报错信息只有failed,也没告诉原因:[DEVICE]2021-11-09 17:44:29.945[ERROR](1355-model_process.cpp:288)execute model failed, modelId is 3, ret = 145000[DEVICE]2021-11-09 17:44:29.945[ERROR](1355-acl_infer_impl.cpp:255)execute inference failed我感觉很奇怪,又在kit上试c3x的模型,也报错,但日志报错信息更多:inputTensorVec[0]: name=input_1 n=1 c=3 h=416 w=416 size=2076672your input size:0: 519168;这个错误就有意思了,inputshape相乘竟然不等于size。模型从h5冻结成为pb,再到转换为om,我的inputshape都是设置1,416,416,3,相乘就是519168,结果他给的size=2076672,恰好是519168的4倍,于是我发现在tensorflow加载模型时,inputshape设置的是None,None,None,3,我想这应该是真正决定输入shape的地方,即使后续冻结为pb时使用冻结函数f = tf.function(infer).get_concrete_function(input_1=tf.TensorSpec(shape=[None, 416, 416, 3], dtype=tf.float32)以及后续pb转om时都不起作用,模型内部应该是默认四倍的输入大小,所以导致inputshape为1,416,416,3但输入size为4倍的情况。解决:所以我尝试在加载h5权重前,构建模型时就需要将inputshape写为None,416,416,3,最终问题得到了解决