一、基于高通8155的SNPE-PTQ量化与打包
量化位置与工作目录,snpe1.51与1.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.106的quant_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环境,假设dsp、snpe、xlite等相关库均在当前目录,则:
dsp, snpe库为:
三、基于高通8155车机的SNPE-PTQ量化模型效率效果测试方法
效果测试原理:snpe-net-run分别推理浮点模型、量化模型,计算MAE和余弦相似度评估效果;
效率测试原理:xlite推理浮点模型、量化模型,循环200次计算平均前向时间。
已完成脚本编写,只需按步骤执行脚本即可。
1、量化、打包后在31.106:./model_effectTest/下执行脚本取出待测试模型的dlc和xlite资源:
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中