【深度学习实战(36)】模型转换之onnx模型转地平线J3 二进制bin模型

server/2024/10/19 6:21:54/

一、PTQ量化流程

(1) 核查onnx模型
(2)准备和生成模型校准数据集
(3)PTQ量化
(4)量化模型推理

二、具体流程

(1)使用01_check_onnx.sh脚本,对onnx模型进行核查。
(2)准备模型校准数据集,数据集需要几十张到几百张左右。
(3)编写02_prepare_calibration_data.py,对校准数据集中的数据进行预处理,运行02_prepare_calibration_data.py,就会生成可用于模型PTQ量化的校准集calibration_data。
(4)进行PTQ量化,模型转换及二进制模型编译工作。首先,需要参考地平线官方提供的yaml文件示例,需要根据自己的实际模型和量化需求,写一个量化Yaml文件,包含模型参数(model_parameters)、输入参数(input_parameters)、校准参数(calibration_parameters)、编译参数(compiler_parameters)。写好量化yaml配置文件后,运行下面指令进行PTQ量化,模型转换和编译。
sudo sh ./03_build_onnx.sh
运行成功后,会在model_output文件夹下,生成量化后的quantized_model.onnx模型、model.bin二进制模型、及可以用于查看模型推理速度,每层神经结构耗时等关键信息文件。
(5)基于Netron软件对原始模型和转换模型做结构对比,判断转换后的网络结构是否与原始模型一致。
(6)编写J3环境下,使用quantized_model.onnx模型进行推理的代码,当前推理结果会和使用model.bin模型在J3板端跑的效果一致。运行下面指令进行PTQ量化后的onnx模型推理,可用来对比量化前后的误差:
python3 04_inference.py


http://www.ppmy.cn/server/41459.html

相关文章

灵卡科技HDMI音视频采集及H.264编码一体化采集卡—LCC260

推荐一款由灵卡科技倾力打造的高品质HDMI音视频采集卡——LCC260。以创新的技术,精湛的工艺和卓越的性能,为您提供全方位的音视频解决方案。 LCC260是一款集HDMI音视频采集与H.264编码于一身的全功能采集卡。它的输入端配备了最先进的HDMI 1.4a标准接口&…

基于51单片机的时钟万年历—可农历显示

基于51单片机的时钟万年历 (仿真+程序+原理图+设计报告) 功能介绍 具体功能: 1、可以显示年、月、日、时、分、秒、星期、农历; 2、按键可以设置闹钟及报警; 3、按键可以调整时…

Android 如何启用user版本的adb源码分析

Android调试桥(ADB, Android Debug Bridge)是一个Android命令行工具,包含在SDK 平台工具包中,adb可以用于连接Android设备,或者模拟器,实现对设备的控制,比如安装和调试应用。和Appium一样,adb也是基于C/S架…

【动态规划 状态机dp 性能优化】3098. 求出所有子序列的能量和

本文涉及知识点 动态规划 状态机dp 性能优化 LeetCode3098. 求出所有子序列的能量和 给你一个长度为 n 的整数数组 nums 和一个 正 整数 k 。 一个子序列的 能量 定义为子序列中 任意 两个元素的差值绝对值的 最小值 。 请你返回 nums 中长度 等于 k 的 所有 子序列的 能量和…

MQTT学习(二)

订阅主题和订阅确认 SUBSCRIBE——订阅主题 之前的CONNECT报文,分为 固定报头:必须存在,用于描述报文信息。里面有指出什么类型的报文,报文的等级。可变报头:不一定存在。主要看什么样子类型的报文。有效载荷部分&a…

《编译原理》阅读笔记:p1-p3

《编译原理》学习第 1 天,p1-p3总结,总计 3 页。 一、技术总结 1.compiler(编译器) p1, But, before a program can be run, it first must be translated into a form in which it can be executed by a computer. The software systems that do thi…

搞什么副业可以月入过万?

月入过万的副业不是一件容易的事情,它需要你付出很多努力和时间。以下是一些可能能够实现月入过万的副业 1. 自媒体运营 通过开设自己的公众号、博客或YouTube频道,积累一定的粉丝和流量,然后通过广告、赞助、商品销售等方式赚取收入。 2. …

vue----- watch监听$attrs 的注意事项

目录 前言 原因分析 解决方案 总结 前言 在 Vue 开发过程中,如遇到祖先组件需要传值到孙子组件时,需要在儿子组件接收 props ,然后再传递给孙子组件,通过使用 v-bind"$attrs" 则会带来极大的便利,但同时…