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

一、基于高通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

​​​​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

好用的兼容性测试工具推荐

兼容性测试确保软件在不同系统和环境中的一致性。本指南探讨了开发人员和QA专业人员有效检测和解决问题的工具,从而提高应用程序的稳健性和用户满意度。 好用的兼容性测试工具推荐 1.Lambda测试 它是一个由AI驱动的测试编排和执行平台,可让您使用超过300…

新能源电燃灶:变革与优势

在当今社会,能源问题日益凸显,能源危机成为了全球关注的焦点。而在厨房领域,一种名为新能源电燃灶的产品正逐渐走进人们的视野,以华火电燃灶为例,它展现出了令人瞩目的特点和潜力。 随着传统能源的逐渐枯竭和环境压力的…

使用MyBatis的动态SQL注解实现实体的CRUD操作

使用MyBatis的动态SQL注解实现实体的CRUD操作 1. 引言2. 准备工作2.1 创建数据表2.2 创建实体类 Book2.3 修改Mapper接口 BookMapper 3. 测试CRUD操作3.1 配置日志3.2 查询操作3.3 新增操作3.4 修改操作3.5 删除操作 4. 与MyBatis Plus的对比5. 动态SQL注解的适用场景5.1 动态查…

CSDN原力值涨分规则

CSDN的原力值是指用户在CSDN社区中的影响力和贡献程度的评估指标。原力值是根据用户在CSDN平台上的发表文章、获得的点赞和评论数量、参与的社区活动等多个因素综合计算得出的。较高的原力值意味着用户在CSDN社区中的影响力和知名度较高,其发表的文章和回答的问题可…

虹科技术丨跨越距离障碍:PCAN系列网关在远程CAN网络通信的应用潜力

来源:虹科技术丨跨越距离障碍:PCAN系列网关在远程CAN网络通信的应用潜力 原文链接:虹科技术 | 跨越距离障碍:PCAN系列网关在远程CAN网络通信的应用潜力 欢迎关注虹科,为您提供最新资讯! #PCAN #网关 #CA…

Steam夏促史低游戏推荐 Steam夏促哪有游戏值得入手

steam夏促来了,作为大型的季节特卖,这次夏促也是有很多不错的游戏,价格优惠也非常到位,想入手游戏的玩家可以抓住这次机会,夏促的时间是6.28到7.12,快去看看有没有心仪的游戏吧,本篇带来steam夏…

面试-java异常体系

1.java异常体系 error类是指与jvm相关的问题。如系统崩溃,虚拟机错误,内存空间不足。 非runtime异常不处理,程序就没有办法执行。 一旦遇到异常抛出,后面的异常就不会进行。 (1)常见的error以及exception 2.java异常要点分析…

CAM350如何移动元素?

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

MySQL数据库的存储引擎mylsam和innodb

一、存储引擎概述 1.什么是存储引擎 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。 …

关于JVM必备的一些知识

一、类加载 【加载】 - 【链接】-【初始化】 1.1 加载(Loading) 加载阶段是类加载过程的第一步,它的主要任务是通过类的全限定名(Fully Qualified Class Name)来获取类的二进制字节流(binary data&#…

虹科技术丨Linux环境再升级:PLIN驱动程序正式发布

来源:虹科技术丨Linux环境再升级:PLIN驱动程序正式发布 原文链接:https://mp.weixin.qq.com/s/N4zmkYXTPr7xm-h2s7QiLw 欢迎关注虹科,为您提供最新资讯! #PLIN #LIN #LIN接口 导读 Linux驱动程序领域再添新成员&am…

入门机器视觉的正确打开方式——徒手撸一个python+opencv实现的机器视觉简易调试工具(下)

目录 1.引言2.框架思路3.图像处理流程化的实现3.1如何解析图像流程数据结构3.2 使用networkx网络图库3.3 python实现 4.结论5.python源码PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源ps3.移动小车相关文章资源 1.引言 在当今AI时代,关于视觉…

昇思25天学习打卡营第4天|网络构建

文章目录 网络构建 网络构建 在打卡第一天就简单演示了网络构建,一个神经网络模型表示为一个Cell,由不同的子Cell构成。使用这样的嵌套结构可以简单地使用面向对象编程的思维,对神经网络结构进行构建和管理。 继承nn.Cell类来定义神经网络&…

Android 界面库 (二) 之 Data binding 详细介绍

1. 简介 回顾我们在前面文章《Android 界面库 (一) 之 View binding 简单使用》中学习的 View Binding,它旨在简化 View 与代码之间的绑定过程。它会在编译时期为每个 XML 布局文件生成相应的绑定类(Binding class),该类里包含了布局文件每个有 ID 的 Vi…

centos7 安装单机MongoDB

centos7安装单机 yum 安装 1、配置yum源 vim /etc/yum.repos.d/mongodb.repo [mongodb-org-7.0] nameMongoDB Repository baseurlhttps://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/ gpgcheck1 enabled1 gpgkeyhttps://www.mongodb.org/static/pgp…

CSS实现文字颜色渐变

直接上代码和效果图&#xff1a; <p class"linecolor">文字颜色渐变</p><style type"text/css">.linecolor{font-size: 30px;background-image:-webkit-linear-gradient(bottom,red,#fd8403,yellow);-webkit-background-clip:text;-web…

Flutter循序渐进==>基金管理APP首页

目录 查看版本 组件 组件源码学习 做个基金APP首页源代码 效果 查看版本 组件 组件的本质就是个类。 import package:flutter/material.dart;void main() {runApp(const OurFirstApp(),); } OurFirstApp()实例化&#xff0c;就是给runApp用的&#xff0c;runApp就是运行实…

AST反混淆|某练习平台混淆代码彻底还原及逆向请求

关注它&#xff0c;不迷路。 本文章中所有内容仅供学习交流&#xff0c;不可用于任何商业用途和非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请联系作者立即删除&#xff01; 一.目标地址 https://match.yuanrenxue.cn/match/2 二.代码还原 初次请…

Java常量、变量、成员内部类

文章目录 1.常量2.变量3.成员内部类4.变动 1.常量 实例常量&#xff1a;只用final修饰&#xff0c;是某个具体类的实例 静态常量&#xff1a;finalstatic修饰&#xff0c;属于类&#xff0c;所有实例共享同一个类常量 2.变量 实例变量(成员变量)&#xff1a;定义在类内部但在…

【motan rpc 懒加载】异常

文章目录 升级版本解决问题我使用的有问题的版本配置懒加载错误的版本配置了懒加载 但是不生效 lazyInit"true" 启动不是懒加载 会报错一次官方回复 升级版本解决问题 <version.motan>1.2.1</version.motan><dependency><groupId>com.weibo…