3,302
社区成员




我用如下代码建立了一个snpe实例,我发现如果我用的是prepare后的模型,runtime使用dsp,build失败,报QnnGraph_create() Failed;但是如果build的过程不指定setOutputLayers则可以正常加载,但是结果输出不正确。我尝试使用cpu可以构建模型,是可以正常运行的,这是什么情况?
C++ |
这里提供解决思路:首先尝试使用snpe-net-run运行模型,指定--use_dsp,同时指定--set_output_tensors,把你所有需要输出的tensor(即你代码里的m_outputLayers)全部指定上去。如果snpe-net-run可以正常运行(一般来说是不行的),那么尝试最简构建,只指定setOutputLayers和setRuntimeProcessorOrder,如果还不行则试试c-style的api。如果snpe-net-run还是报一样的问题,检查你prepare的时候是不是指定了--set_output_tensors,且把你所有需要输出的节点都指定进去了。原理上,运行时指定的output_tensors要和你prepare时候指定的保持一致,你可以通过snpe-dlc-info查看你prepare后的模型,如果正确的话,你应该可以在Output一栏里看到你所有需要输出的节点,如