基于高通8155的SNPE-PTQ量化方法介绍

news2024/11/10 16:00:03

一、基于高通8155的SNPE-PTQ量化与打包

量化位置与工作目录,snpe1.511.43环境结构相同,下面以1.51为例介绍:

  • SNPE1.51量化:172.20.84.162:/media/share_31.106
  • SNPE1.43量化:172.20.65.2:/media/share_31.106

脚本化执行量化步骤和分步手动执行效果相同,但大大简化了步骤。若模型op全部支持,对于人脸相关模型,量化、打包最多只需执行三步、两个命令:

  • sh 4.run_only_one_model.sh [一些输入参数]
    • 将会执行模型fuse,op裁剪,xlite打包,引擎资源打包以及量化脚本生成等步骤;
    • 若执行命令前尚未量化,将仅打包cpu资源,命令完成后需再执行下面两步;否则将打包全部cpu和量化资源,完成
    • 输入参数参考:5.snpe1.51_1003.sh
      • arg1:onnx路径
      • arg2:此模型在model/下的文件夹名称,需保持对应,不可随意修改
      • arg3:需裁减掉以避免量化的op name, 一般需裁减掉模型最后的Concat结点以降低量化误差
      • arg4:模型资源在引擎中的主名称
      • arg5:模型的input shape

  • 若尚未执行量化,执行上步命令时终端将输出黄色警告信息提示,则前往量化服务器的quant_shell目录下执行量化操作,如`sh run_FACE_DETECT_quant.sh`, 脚本在上步生成,无需修改直接运行即可
  • 量化完成后再次运行`sh 4.run_only_one_model.sh`进行打包,打包产物在model/[model_name]

对于手势模型,每版模型均需重新生成量化数据,因此相比人脸相关模型,需增加一步数据生成操作,最多需执行四步、三个命令:

  • sh 4.run_GR_model.sh [一些输入参数]
    • 脚本内执行的步骤类似`4.run_only_one_model.sh`, 另增加了生成量化数据生成脚本的命令;
    • 若执行命令前尚未量化,将仅打包cpu资源,命令完成后需再执行下面三步;否则将打包全部cpu和量化资源,完成
    • 输入参数参考:5.snpe1.51_1003.sh
      • arg1:onnx路径
      • arg2:量化图像数据路径
      • arg3:此模型在model/下的文件夹名称,如GR或其他自定义名称均可
      • arg4:量化时的优化项,如"--optimizations bc""--optimizations bc --optimizations cle",经验表明仅bc时误差较小
      • arg5:模型资源在引擎中的主名称
      • arg6:资源版本号,如"201003", 可根据引擎版本、模型版本而定

  • 若尚未执行量化,执行上步命令时终端将输出黄色警告信息提示,则切换到31.106quant_shell下执行`sh run_GR_get_quant_data.sh`以生成新的量化数据
  • 前往量化服务器的quant_shell目录下执行量化操作,`sh run_GR_quant.sh`, 脚本在第一步生成,无需修改直接运行即可
  • 量化完成后再次运行`sh 4.run_GR_model.sh`进行打包,打包产物在model/[model_name]

二、基于高通8155的SNPE-PTQ量化模型测试之车机使用方法

量化、打包完成后的测试需要在车机进行,目前有两个车机可用:

  • 威马车机
  • 蔚来车机

车机环境都不稳定,测试时应优先使用威马车机与业务方保持一致(已测试两个车机不会造成效果差异)。

车机入口

需要先进入远程桌面以连接车机。

win10-运行-mstsc, 输入

  • 计算机:192.168.122.116
  • 用户名
  • 密码

登录(远程桌面的系统空间不足,已无法创建新用户),连接进入后通常在D:/[用户名]下工作。

可根据下面的方法连接、使用对应车机。

威马车机连接、传输文件

蔚来车机连接、传输文件

配置车机环境

车机测试通常是测试量化模型,需要配置dsp环境,假设dspsnpexlite等相关库均在当前目录,则:

dsp, snpe库为:

三、基于高通8155车机的SNPE-PTQ量化模型效率效果测试方法

效果测试原理:snpe-net-run分别推理浮点模型、量化模型,计算MAE和余弦相似度评估效果;

效率测试原理:xlite推理浮点模型、量化模型,循环200次计算平均前向时间。

已完成脚本编写,只需按步骤执行脚本即可。

1、量化、打包后在31.106:./model_effectTest/下执行脚本取出待测试模型的dlcxlite资源:

python3 get_model_dlc_xlite.py

  • 参考脚本的data_dir0变量配置脚本的data_dir变量以设置需要取出哪些模型,
  • 脚本会将模型全部取出到当前目录下的_model_snpeDLC_xliteRES下,同时生成测试脚本到_model_snpeDLC_xliteRES/_run_all_test.sh, 并压缩为_model_snpeDLC_xliteRES_syyan2.tar.gz

​​​​​​​2、压缩文件传输到车机,按测试脚本运行并得到输出结果的_snpe_out_data_syyan2.tar.gz文件,传输回31.106:./model_effectTest/下并解压得到_snpe_out_data文件夹

​​​​​​​3、运行脚本以计算MAE和余弦相似度指标

sh run_res_Effect_Efficiency.sh

  • 配置get_res_Effect_Efficiency.py中的data_dir变量以设置需要计算哪些模型的效率效果指标
  • 脚本将计算并记录结果到文件_log_all.log, 同时将提取效果最佳的资源到当前目录下的_res_best

​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1872786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

离线翻译软件哪个好用?5款离线翻译器带你解决语言交流难题~

熬过了高考这一大关,也是时候给自己放放松,奖励自己一趟说走就走的旅行了!正好这不周边几个国家都开放了免签政策,借此机会出国游也是一个不错的选择~ 不过出国旅行最怕的还是沟通问题,幸运的是现在可有不少好用的离线…

[游戏开发][UE5]引擎学习记录

C Log和蓝图Log C Log 方法 UE_Log(参数1,参数2,参数3) //举例: UE_LOG(LogTemp, Error, TEXT("Log Info: %s"),"Test Log"); 三个参数的作用 参数1:输出窗口归类使用,你写什么它就显示什么 参数2&#x…

二叉树基础篇

目录 一.树形结构 二.基本概念 三.二叉树种类及性质 1.满二叉树 2.完全二叉树 3.完满二叉树 4.平衡二叉树 5.二叉树的性质 6.性质相关习题 四.二叉树的存储方式 五. 二叉树的遍历方式 六.二叉树的定义 一.树形结构 树是一种非线性的数据结构,它是由n&#…

SAP QM 取消UD 决策

SAP QM 取消UD 决策。 SAP提供了相关Notes用于取消UD决策。 C24010PA 这个批次已经做了UD 决策 C24010PA目前库存已经是非限制库存 执行操作 成功后检查,自动产生了322,检验批状态也变回来了。 取消原来的生产入库也是Ok的。 测试成功。 需要用到以下两个Notes。 Notes(S…

【深度学习】深度学习基础

李宏毅深度学习笔记 局部极小值与鞍点 鞍点其实就是梯度是零且区别于局部极小值和局部极大值的点。 鞍点的叫法是因为其形状像马鞍。鞍点的梯度为零,但它不是局部极小值。我们把梯度为零的点统称为临界点(critical point)。损失没有办法再下…

【机器学习】自然语言处理的新前沿:GPT-4与Data Analysis

目录 1、生成二维码Prompt:请用二维码编码这个信息,我爱chatgpt2、分析PDFPrompt:请分析这篇pdf的主要内容,用中文输出分析结果,100字3、设计网站Prompt:请帮我设计一个网站,网站的主题是哪吒玩…

下穿隧道结构安全该如何保证,检测跟自动化监测该如何抉择

隧道监测背景: 隧道所处的地下环境较为复杂,易受地质条件恶化、结构损伤、退化失稳以及自然灾害等因素影响,引发隧道拱顶开裂、边墙开裂、衬砌损坏、隧道渗漏水、围岩大变形等病害,从而导致隧道安全事故发生,尤其在长期…

查普曼大学团队使用惯性动捕系统制作动画短片

道奇电影和媒体艺术学院是查普曼大学的知名学院,同时也是美国首屈一指的电影学院之一,拥有一流电影制作工作室。 最近,道奇学院的一个学生制作团队接手了一个项目,该项目要求使用真人动作、视觉效果以及真人演员和CG角色之间的互动…

斜光测距的原理及python实现

1.前言 最近做了一个基于opencv的斜光测距的小项目,东西不多,但是很有意思,值得拿出来学一学。项目里面需要比较精确的定位功能,将前人matlab代码移植到python上,并且做了一些优化,简化逻辑(毕竟我是专业的…

智芯开发板----环境配置

一、软件准备 Keil IDE/ IAR IdeSupport_Install_Package已经上传到资源中自行下载即可。 二、IAR环境配置 1.首先将IdeSupport_Install_Package内的IAR文件复制到你的IAR安装路径中如图所示: 2.按如图所示的路径进行复制即可 3.以记事本的方式打开这个xml文件…

基于大数据架构的内容安全风控与分析

1 项目介绍 1.1 研究目的和意义 在数字化时代,内容安全成为了互联网企业面临的一个重要挑战。海量数据的产生与传播,伴随着不良信息和网络安全威胁的日益增加。因此,本课题旨在通过构建一个基于大数据架构的内容安全风控与分析系统&#xf…

绿盟又行了,漏管市场占有率第一

漏洞管理平台 吉祥学安全知识星球🔗除了包含技术干货:Java代码审计、web安全、应急响应等,还包含了安全中常见的售前护网案例、售前方案、ppt等,同时也有面向学生的网络安全面试、护网面试等。 今天看到不少朋友圈在转发&#xff…

用合成数据训练边缘侧火灾检测器

火灾是人类面临的重大威胁,检测火灾至关重要。目前的火焰传感器在距离检测方面存在局限性。为了克服这个问题,我的目标是使用机器学习方法创建一个轻量级且高度准确的火灾检测系统。当需要实时数据处理或机器学习模型可用的数据集很少时,这个…

《昇思25天学习打卡营第5天 | 昇思MindSpore网络构建》

第五天 今天学习了神经网络模型是由神经网络层和Tensor操作构成的,mindspore.nn提供了常见神经网络层的实现,在MindSpore中,Cell类是构建所有网络的基类,也是网络的基本单元。一个神经网络模型表示为一个Cell,它由不同…

大厂程序员上班猝死成常态?

大家好,我是瑶琴呀,拥有一头黑长直秀发的女程序员。 近日,连续看到大厂程序员猝死、低血糖晕倒的新闻,同为程序员感到很难受。互联网加班成常态这是既定事实,尤其在这个内卷严重、经济不景气的环境中,加班…

CAM350如何移动元素?

CAM350如何移动元素? 1、选择菜单栏Edit→Move 2、然后按W键,光标变为下图的形状,然后框选需要移动的元素。 3、框选元素后如下图所示,然后右击,退出框选命令。 4、然后点选一个原点开始移动所选的元素。 移动后如下图…

数据分析ClickHouse学习笔记

一、ClickHouse基础 1.1 ClickHouse介绍 ClickHouse是一个用于联机分析(OLAP)的列式DBMS。 简单来说,相比MySQL等行式数据库,数据存储方式是: Rowidis_deltitlesexcreateAt#021a12024/2/18 5:19#130b12024/2/18 8:10#241c12024/2/18 7:38…

车载测试工程师在行业中有哪些挑战需要面对?

车载测试工程师在行业中面临着多方面的挑战,这些挑战涵盖了技术、安全、法规以及市场环境等多个层面。 1. 技术挑战: 复杂性与集成性:现代汽车系统由众多模块和子系统组成,包括发动机控制、安全系统、娱乐系统、导航系统等。这些系…

新品Coming Soon!OAK-D-SR-PoE:使用3D+AI视觉结合ToF实现箱体测量和鉴别!

OAKChina 新品:OAK-D SR PoE结合ToF实现箱体检测 3DAI解决方案提供商 手动测量箱体、缺陷、大小等操作可能是一项繁琐并且劳累而机械的任务,但OAK中国本次将提供了更好的解决方案:3DAI视觉处理箱体的识别和检测,使用了即将发布的…