• 全部
...

SNPE如何自动获取多输出网络的输出名称列表?

degomy 2022-08-09 13:33:36

1. 载入dlc文件

std::unique_ptr<zdl::DlContainer::IDlContainer> container = loadContainerFromFile(model_name);

2. 建立SNPE和SNPEBuilder对象

  1. std::unique_ptr<zdl::SNPE::SNPE> snpe;
  2. zdl::SNPE::SNPEBuilder snpeBuilder(container.get());

3. 通过设置必要的参数,建立snpe推理对象

  1. snpe = snpeBuilder.setOutputTensors({})
  2. .setRuntimeProcessorOrder(runtimeList)
  3. .setUseUserSuppliedBuffers(useUserSuppliedBuffers)
  4. .setPlatformConfig(platformConfig)
  5. .setInitCacheMode(useCaching)
  6. .build();

在第3步里,setOutputTensors的参数为空列表,表示只取最终结果。但是,用这种方法,最终只能获取到一个输出的名称。

此参数还可以通过先用工具查看dlc网络的输出,再手动设置为存有输出名称的列表。

问题:

        如果工程中有许多具有多输出的网络要用,手动设置就显得很麻烦而且不现实。这时就需要自动获取到网络多个输出的名称。但是我查了sdk里的接口,要么是要手动设置列表之后、要么是推理完成之后才能获取到输出名称列表。请问, 有没有在推理之前、且不需要手动设置就能根据网络对象container获取到多输出名称列表的办法?

        之前我找到了一个笨办法,通过notepad++查看dlc文件,发现可以看到输出名称的字段,这样通过解析dlc文件,抓取该字段,就可以得到输出名称列表。但这种方法不是很满意,请问有没有更简便的办法?高通sdk不能根据网络获取多输出这一点,感觉很奇怪,所以我还是怀疑自己没有找到窍门。

 

...全文
给本帖投票
2220 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ronaan 03-24
  • 打赏
  • 举报
回复

碰到了同样的问题,请问大佬最后是怎么解决的呀?

鲤鱼不懂 2023-06-08
  • 打赏
  • 举报
回复

大佬请教一下,您是如何输入多个输出检测头给snpe.

CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-编程语言 发布问题, 以便更快地解决您的疑问

3,706

社区成员

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

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

手机看
关注公众号

关注公众号

客服 返回
顶部