4123|0

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

#AI挑战营第二站# windows下基于RV1106开发板的ONNX转RKNN模型 [复制链接]

本帖最后由 xianhangCheng 于 2024-5-8 11:54 编辑

介绍

OXXN模型:ONNX是一种用于表示深度学习模型的开放源代码格式,旨在促进不同深度学习框架(如pytorch、mxnet等)之间的模型互操作性和转换。通过ONNX,可以在一个深度学习框架中训练模型,然后将其转换为ONNX格式,最后在另一个支持ONNX的框架中加载和使用该模型,从而实现跨框架的模型迁移和共享。

 

RKNN模型:由瑞芯微(Rockchip)推出的一种神经网络模型转换工具。RKNN模型是为了在Rockchip的芯片上进行深度学习模型的高效部署而设计的。RKNN模型的主要功能包括将深度学习模型转换成Rockchip芯片上的可执行文件,以便在嵌入式设备、移动设备或其他Rockchip芯片支持的平台上进行推理。通过RKNN模型,用户可以将经过训练的神经网络模型(如TensorFlow、Caffe等)转换成Rockchip芯片所支持的格式,以实现在硬件上高效地运行神经网络模型。

 

模型转换:将ONNX模型转换为RKNN模型是通常需要搭建好python环境,并使用ONNX-RKNN转换工具,例如 rknn-toolkit,这是由RKNN官方提供的转换工具。可以在RKNN的GitHub上找到它

链接已隐藏,如需查看请登录或者注册
。其转换过程如下:

  • 加载ONNX模型:使用Python的ONNX库(onnx)加载你的ONNX模型。
  • 检查兼容性:确保ONNX模型的结构和层与RKNN支持的模型结构兼容。某些复杂架构可能需要调整。
  • 转换模型:使用rknn-toolkit的convert命令将ONNX模型转换为RKNN模型。这通常涉及指定输入和输出格式,以及可能的模型优化参数。
  • 配置RKNN:可能需要根据目标设备(如Raspberry Pi)的性能和内存限制进行模型配置。
  • 编译和优化:生成RKNN模型文件,这个文件可以在嵌入式设备上运行。

环境配置

我们可以看到,根据介绍我们使用的是基于RV1106开发板,所以这里我们选择下载rknn-toolkit2.

我们根据提示从
链接已隐藏,如需查看请登录或者注册
下载 rknn-toolkit-v1.7.5-packages.tar.gz或者rknn-toolkit-v1.7.5-packages.zip。

下载完,解压后能看见多个平台的whl文件,这里因为用的是win所以选择rknn_toolkit-1.7.5-cp36-cp36m-win_amd64.whl这个文件,并选择requirements_cpu.txt作为我们的安装包。并且我们观察到这个whl文件是cp36,即win环境下支持python3.6。所以接下来我们开始配置环境。

 

使用 Conda 创建 Python 环境。

#创建conda虚拟环境
conda create --name=RKNN python=3.6
#激活环境
conda activate RKNN

进入解压的rknn-toolkit-v1.7.5-packages目录里,安装packages/requirements_cpu.txt文件里的依赖包,path_txt是自己解压的rknn-toolkit-v1.7.5-packages/packages目录下的requirements_cpu.txt文件在电脑硬盘里的路径。

pip install -r path_txt

最后安装rknn_toolkit-1.7.5-cp36-cp36m-win_amd64.whl文件,path_whl是自己解压的自己解压的rknn-toolkit-v1.7.5-packages/packages目录下的rknn_toolkit-1.7.5-cp36-cp36m-win_amd64.whl文件在电脑硬盘里的路径。

pip install path_whl
踩坑在安装whl文件时,可能会遇到错误,比如我遇到AssertionError: Could not find “cmake“ executable!导致的ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full。(已解决,忘记截图了),这时候网上部分教程是更新pip、setuptools包;或者pip install xxx改为pip3 install xxx。但这些都不能解决!!!应该根据提示的具体错误加以解决。比如我遇到的AssertionError: Could not find “cmake“ executable!错误解决,需要安装cmake才能解决。安装命令:pip install cmake
 
ONNX模型转换为RKNN模型
from rknn.api import RKNN

# 创建对象
rknn = RKNN()

# 加载ONNX模型
print('--> Loading model')
ret = rknn.load_onnx(model="./minst_model.onnx")
if ret != 0:
    print('Load model failed!')
    exit(ret)
print('done')

# 配置平台
print('--> config model')
rknn.config(mean_values=[[128]], std_values=[[128]])
print('done')

# 建立模型
print('--> Building model')
ret = rknn.build(do_quantization=False)
if ret != 0:
    print('Build model failed!')
    exit(ret)
print('done')

# 保存RKNN模型
print('--> Export rknn model')
ret = rknn.export_rknn("best_model.rknn")
if ret != 0:
    print('Export rknn model failed!')
    exit(ret)
print('done')


运行代码,成功完成oxxn模型到rknn模型的转换。(红色的警告不必理会)

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

best_model.rknn

6.11 MB, 下载次数: 0

点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表