我用如下代码建立了一个snpe实例,我发现如果我用的是prepare后的模型,runtime使用dsp,build失败,报QnnGraph_create() Failed;但是...

巨物恐惧患者 2024-05-09 10:04:01

我用如下代码建立了一个snpe实例,我发现如果我用的是prepare后的模型,runtime使用dsp,build失败,报QnnGraph_create() Failed;但是如果build的过程不指定setOutputLayers则可以正常加载,但是结果输出不正确。我尝试使用cpu可以构建模型,是可以正常运行的,这是什么情况?

C++
zdl::SNPE::SNPEBuilder snpeBuilder(m_container.get());
auto m_snpe = snpeBuilder.setOutputLayers(m_outputLayers)
   .setRuntimeProcessorOrder(m_runtime)
   .setPerformanceProfile(profile)
   .setUseUserSuppliedBuffers(false)
   .build();

...全文
1390 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38498942 2024-05-09
  • 打赏
  • 举报
回复

这里提供解决思路:首先尝试使用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一栏里看到你所有需要输出的节点,如

img

4,654

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧