基于RKNN的嵌入式深度学习开发(2)

上一个章节我们介绍的RKNN模型的模型转换和模型的推理,这一章节我们将介绍模型的量化和评估部分。

2.3 RKNN模型的量化

量化就是将浮点 转换为定点 运算的过程,或者训练后由rknn来量化。量化模型使用较低精度(如int8/uint8/int16)保存模型的权重信息,在部署时可以使用更少的存储空间,获得更快的推理速度。但各深度学习框架训练、保存模型时,通常使用浮点数据,所以模型量化是模型转换过程中非常重要的一环。RKNN Toolkit目前对量化模型的支持主要有以下两种形式

  • RKNN Toolkit根据用户提供的量化数据集,对加载的浮点模型进行量化,生成量化的RKNN 模型。
    • 支持的量化精度类型:int16,int8,uint8
    • 量化方式:训练后静态量化
    • 支持的量化粒度:per-tensor(或 per-layer),不支持 per-channel 量化
  • 由深度学习框架导出量化模型,RKNN Toolkit加载并利用已有的量化信息,生成量化 RKNN 模型。
    • 支持的深度学习框架:PyToch(v1.9.0)、ONNX(Onnxruntime v1.5.1)、Tensorflow、TFLite
    • 支持的量化精度类型:int8, uint8
    • 量化方式:训练后静态量化, 量化感知训练(QAT)

以下代码为量化的示例代码:

python 复制代码
# 导入RKNN库  
from rknn.api import RKNN  

# 创建RKNN对象  
rknn = RKNN()  

# 加载已训练的模型,例如TensorFlow或PyTorch模型  
# 这里以TensorFlow Frozen Graph为例  
model_path = 'your_model.pb'  
rknn.load_tensorflow(model=model_path, 
                     inputs=['input_tensor'], 
                     outputs=['output_tensor'])  

# 配置量化  
rknn.config(quantized_enable=True, quantized_dtype='int8')  

# 编译模型  
print("编译模型...")  
rknn.compile()  

# 进行量化  
print("量化模型...")  
rknn.quantize()  

# 导出量化后的模型  
output_model_path = 'quantized_model.rknn'  
rknn.export(output_model_path)  

print("量化完成,模型已保存到:", output_model_path)  

# 释放RKNN对象  
rknn.release()

2.4 RKNN模型的评估

通过模型转换得到 RKNN 模型后,可以使用RKNN Toolkit在Rockchip NPU开发板上对模型的准确性、性能、内存使用情况进行评估。评估的流程如下所示:

模型评估主要分三部分进行:准确性评估、性能评估和内存评估。

  1. 准确性评估:评估 RKNN 模型推理结果的准确性。
  2. 性能评估:评估 RKNN 模型在指定开发板上推理时的耗时。
  3. 内存评估:评估 RKNN 模型推理时在 Rockchip NPU 上的内存使用情况。

2.5 RKNN模型的加密

为了避免模型的结构、权重等信息泄漏,RKNN Toolkit提供模型加密功能。 RKNN Toolkit 提供 3 个加密等级,等级越高,安全性越高,解密越耗时;反之,安全性越低,解密越快。

加密模型的部署流程和普通一样,不需要解密等额外操作。

相关推荐
高洁016 分钟前
大模型-高效优化技术全景解析:微调 量化 剪枝 梯度裁剪与蒸馏 下
人工智能·python·深度学习·神经网络·知识图谱
CoookeCola7 分钟前
MovieNet(A holistic dataset for movie understanding) :面向电影理解的多模态综合数据集与工具链
数据仓库·人工智能·目标检测·计算机视觉·数据挖掘
张艾拉 Fun AI Everyday13 分钟前
Gartner 2025年新兴技术成熟度曲线
人工智能
菜鸟‍18 分钟前
【论文学习】大语言模型(LLM)论文
论文阅读·人工智能·学习
默 语1 小时前
AI驱动软件测试全流程自动化:从理论到实践的深度探索
运维·人工智能·驱动开发·ai·自动化·ai技术·测试全流程
说私域1 小时前
基于开源AI大模型、AI智能名片与S2B2C商城小程序的购物中心精准零售数据架构研究
人工智能·小程序·开源
key061 小时前
大模型在网络安全领域的应用与评测
网络·人工智能·web安全
北京耐用通信2 小时前
破解工业通信瓶颈:耐达讯自动化Modbus转Profinet网关连接驱动器的奥秘
人工智能·物联网·网络协议·自动化·信息与通信
应用市场2 小时前
OpenCV进阶:图像变换、增强与特征检测实战
人工智能·opencv·计算机视觉
Moniane2 小时前
Python爬虫入门:从零到数据采集
深度学习