5629|30

5263

帖子

236

TA的资源

管理员

楼主
 

【AI挑战营第二站】算法工程化部署打包成SDK [复制链接]

 

活动总览:嵌入式工程师AI挑战营(初阶):基于RV1106,动手部署手写数字识别落地

 

【AI挑战营第一站】模型训练:在PC上完成手写数字模型训练完成后,想要最终部署到RV1106上,我们需要将第一阶段的ONNX模型,转为RKNN的模型,恰好是本站的任务。

大家可以边做任务,边等审核结果,申请RV1106开发板的网友,会在5月10日前完成公布审核结果&派送套件。

 

挑战时间:2周,4月26日-5月10日

本站参与的网友需要:

1、跟帖回复:什么是ONNX模型、RKNN模型

2、以#AI挑战营第二站#为标题前缀,发帖分享ONNX模型转换成RKNN模型过程,包含环境部署、转换代码、解读代码,并附上RKNN模型。

 

 

挑战奖励

*奖品是针对完成AI挑战营3个站点任务的总体奖励,非本站的单独奖励。

特别贡献奖(1名):收纳折叠风扇

率先优质发帖分享任务完成过程,且其帖对其他网友完成任务有很大的参考价值、及时帮助其他网友在完成任务中遇到的难题等;

优秀奖 (2名):EEWorld 15周年定制半袖(M号)或者均码防晒衣

优质发帖分享任务过程、完成所有任务,同等条件下,做了拓展题的优先获奖;

参与奖(若干):认真完成任务并按照要求分享的网友,所使用的幸狐 RV1106 Linux 开发板(带摄像头)不用退回,作为参与奖。

 

 

活动微信群

本活动的即时互动、提醒等在论坛开设的AI技术交流群进行,有任何问题均可在群内沟通,活动管理员都会及时响应。参与活动和感兴趣的网友,欢迎微信添加“helloeeworld”为好友,暗号:AI04,即可被拉入群。

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

最新回复

本帖最后由 慕容雪花 于 2024-6-12 11:48 编辑 ONNX(Open Neural Network Exchange)是一种开放的神经网络交换格式,它可以在不同的深度学习框架之间进行模型转换和共享。   RKNN(Rockchip Neural Network)是一种专为Rockchip系列芯片设计的神经网络推理引擎,它提供了高效的神经网络推理能力。   链接: #AI挑战营第二站# onnx转rknn https://bbs.eeworld.com.cn/thread-1284692-1-1.html   详情 回复 发表于 2024-6-12 11:30
点赞 关注

回复
举报

4942

帖子

19

TA的资源

版主

沙发
 
本帖最后由 吾妻思萌 于 2024-5-6 14:18 编辑

周末研究研究

~~~~~~~~~~

ONNX模型和RKNN模型是两种不同格式的深度学习模型,它们各自有不同的特点和应用场景。

ONNX模型:
ONNX(Open Neural Network Exchange)是一种开放的模型格式,它允许开发者在不同的深度学习框架之间转换模型。例如,你可以将一个在PyTorch框架下训练好的模型转换为ONNX格式,然后在其他支持ONNX的框架或工具中使用这个模型。ONNX模型的转换通常涉及使用特定的API或工具,如PyTorch的`torch.onnx.export`方法,将模型导出为ONNX格式[➊](https://blog.csdn.net/qq_42178122/article/details/132699508)。

RKNN模型:
RKNN模型是针对Rockchip NPU(神经网络处理器)优化的模型格式。Rockchip NPU是一种专为边缘计算设计的硬件加速器,它能够高效地执行深度学习推理任务。RKNN模型通过Rockchip的RKNN Toolkit进行转换,这个工具包提供了模型转换、加载、构建和导出等功能,使得模型能够在Rockchip的NPU上运行[❹](https://zhuanlan.zhihu.com/p/653286924)。

转换过程通常包括以下步骤:

  1. 模型配置:设置模型转换参数,如输入数据均值、量化类型等。
  2. 模型加载:加载原始模型,这可能是PyTorch、TensorFlow等框架的模型。
  3. RKNN模型构建:使用RKNN Toolkit将原始模型转换为RKNN模型格式。
  4. RKNN模型导出:导出转换后的模型,以便在Rockchip NPU上部署。

例如,如果你有一个在PyTorch框架下训练好的模型,你可以使用RKNN Toolkit将其转换为RKNN模型,然后在搭载Rockchip NPU的设备上进行推理[❺](https://zhuanlan.zhihu.com/p/667389588)

总结来说,ONNX模型是一种通用的模型格式,用于在不同的深度学习框架之间转换和部署模型;而RKNN模型是针对Rockchip NPU优化的模型格式,用于在Rockchip的边缘计算设备上高效执行深度学习推理任务。

 

发帖链接:

#AI挑战营第二站# Win10 ONNX转RKNN踩坑 https://bbs.eeworld.com.cn/thread-1280367-1-1.html

 
 

回复

57

帖子

5

TA的资源

一粒金砂(高级)

板凳
 
本帖最后由 MioChan 于 2024-4-26 22:48 编辑

1、跟帖回复:什么是ONNX模型、RKNN模型

ONNX(Open Neural Network Exchange,开放式神经网络交换格式)是一种模型文件格式,它在模型训练和模型推理中间提供了中间桥梁,使得上游不同的训练框架都能导出ONNX格式的模型,给到下游不同的推理框架都可以读取ONNX进行部署。

RKNN(Rockchip Neural Network)模型是Rockchip公司提出的一种专门用于在其NPU上部署和运行深度学习模型,RKNN-Toolkit则为用户提供在 PC、 Rockchip NPU平台上进行模型转换、推理和性能评估的开发套件

 

2、以#AI挑战营第二站#为标题前缀,发帖分享ONNX模型转换成RKNN模型过程,包含环境部署、转换代码、解读代码,并附上RKNN模型。

#AI挑战营第二站# Windows下ONNX转RKNN模型过程 

 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(高级)

4
 
本帖最后由 maskmoo 于 2024-4-27 14:17 编辑

ONNX模型是一种跨框架的通用格式,旨在促进不同深度学习框架和工具之间的模型兼容性和可移植性。而RKNN模型是专为Rockchip硬件平台优化的模型格式,目的是提高Rockchip芯片上的推理效率。

 

#AI挑战营第二站# 基于RV1106的ONNX到RKNN模型转换实践

补充内容 (2024-5-30 20:12): https://bbs.eeworld.com.cn/forum ... 1&extra=#pid3322061 补充内容 (2024-5-30 20:13): Ubuntu平台重新训练
 
 
 

回复

40

帖子

0

TA的资源

一粒金砂(中级)

5
 

且容我整理组织一下语言



 
 
 

回复

4942

帖子

19

TA的资源

版主

6
 
ONNX模型是一种开放的模型格式,允许不同深度学习框架之间的模型转换和共享,提高了模型的互操作性和部署的灵活性。

RKNN模型 是瑞芯微公司开发的神经网络推理引擎,专为瑞芯微的芯片设计,能够提供高效的神经网络推理能力,特别是在边缘计算和实时应用中。
 
 
 

回复

34

帖子

2

TA的资源

一粒金砂(中级)

7
 

 

RKNN模型是RK公司设计的一套模型格式,用于在rknpu上加速运行

ONNX模型是通用的开放模型格式,可以用于直接使用或模型转换。在专用npu上可能无法加速运行

#AI挑战营第二站# 基于RV1106芯片的RKNN环境部署及模型转换过程 https://bbs.eeworld.com.cn/thread-1280038-1-1.html

 
 
 

回复

82

帖子

3

TA的资源

一粒金砂(中级)

8
 

ONNX是一种开发的模型格式,通过ONNX可以使用不同的机器学习框架进行模型训练,然后导出统一的格式,进而可以被部署到支持ONNX的所有平台.

RKNN是rockchip的模型格式,可以通过他家的toolkit将ONNX转换成RKNN并支持量化、推理、性能和内存评估、量化精度分析以及模型加密

#AI挑战营第二站#ONNX模型转RKNN

 
 
 

回复

40

帖子

0

TA的资源

一粒金砂(中级)

9
 
 
 
 

回复

248

帖子

0

TA的资源

纯净的硅(初级)

10
 
本帖最后由 qiao--- 于 2024-4-30 17:21 编辑

1、跟帖回复:什么是ONNX模型、RKNN模型

答:ONNX模型是Open Neural Network Exchange的缩写,是一种开放的深度学习模型交换格式,可用于在不同深度学习框架之间交换模型。RKNN模型则是Rockchip Neural Network的缩写,是一种针对Rockchip芯片优化过的深度学习模型。

2.以#AI挑战营第二站#为标题前缀,发帖分享ONNX模型转换成RKNN模型过程,包含环境部署、转换代码、解读代码,并附上RKNN模型。

#AI挑战营第二站#Ubuntu22上将ONNX模型转换成RKNN模型 https://bbs.eeworld.com.cn/thread-1280156-1-1.html

 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

11
 
本帖最后由 不语arc 于 2024-4-30 10:14 编辑

ONNX模型: ONNX(Open Neural Network Exchange)是一种开放的模型交换格式,设计用于深度学习和机器学习领域。它的主要目的是使不同框架(如PyTorch、TensorFlow、MXNet等)训练的模型能够在多个平台上无缝运行,提高了模型的可移植性和互操作性。

RKNN模型: RKNN模型是指针对瑞芯微(Rockchip)系列芯片优化的神经网络模型。RKNN(Rockchip Neural Network)是瑞芯微提供的一个工具包,用于将常见的深度学习模型格式(如Caffe、TensorFlow、ONNX等)转换为专为瑞芯微NPU(Neural Processing Unit)设计的高效运行格式。这种转换过程涉及模型的优化、量化以及可能的结构调整,以确保模型在瑞芯微芯片上运行时能实现高性能和低功耗。

#AI# UbuntuONNXRKNN - Linux - - (eeworld.com.cn)

 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

12
 

1.ONNX是一种开放的神经网络交换格式,它的主要目标是提供一种通用的模型表示,使得深度学习模型可以在不同的框架之间无缝转换和使用。

RKNN是由瑞芯微电子公司推出的一款深度学习模型各阶段流程一体化开发和运行框架。

2.#AI挑战营第二站#Ubuntu下ONNX转RKNN - 嵌入式系统 - 电子工程世界-论坛 (eeworld.com.cn)

 
 
 

回复

40

帖子

0

TA的资源

一粒金砂(中级)

13
 
本帖最后由 luyism 于 2024-5-2 07:18 编辑
 

论坛好像显示有点bug,以markdwon格式编辑的评论在手机版网页上无法正常显示,需要切换到电脑版网页才能显示出来

 
 
 

回复

57

帖子

4

TA的资源

一粒金砂(中级)

14
 

1、跟帖回复:什么是ONNX模型、RKNN模型

  • ONNX:是Open Neural Network Exchange的英文简称,中文意思为开放神经网络交换,是微软和Facebook提出用来表示深度学习模型的开放格式。所谓开放就是ONNX定义了一组和环境,平台均无关的标准格式,来增强各种AI模型的可交互性。换句话说,无论你使用何种训练框架训练模型(比如TensorFlow/Pytorch/OneFlow/Paddle),在训练完毕后你都可以将这些框架的模型统一转换为ONNX这种统一的格式进行存储,可以很方便的与他人分享并转化为其他各种格式模型。
  • NPU:是Neural network Processing Unit的英文简称,中文名字为神经网络处理器,用电路模拟人类的神经元和突触结构。与传统冯诺依曼架构的CPU相比,会有百倍以上的性能或能耗比提升。
  • RKNN,是Rockchip Neural Network的英文简称,是瑞芯微为了加速模型推理而基于自身NPU硬件架构定义的一套模型格式,使用该格式定义的模型在Rockchip NPU上可以获得更高的性能

 

2、以#AI挑战营第二站#为标题前缀,发帖分享ONNX模型转换成RKNN模型过程,包含环境部署、转换代码、解读代码,并附上RKNN模型。

#AI挑战营第二站#Ubuntu环境下ONNX模型转换为RKNN模型 https://bbs.eeworld.com.cn/thread-1280304-1-1.html

 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

15
 

1、跟帖回复:什么是ONNX模型、RKNN模型

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

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

2、以#AI挑战营第二站#为标题前缀,发帖分享ONNX模型转换成RKNN模型过程,包含环境部署、转换代码、解读代码,并附上RKNN模型。

#AI挑战营第二站# windows下基于RV1106开发板的ONNX转RKNN模型 - 嵌入式系统 - 电子工程世界-论坛 (eeworld.com.cn)

 

 
 
 

回复

5263

帖子

236

TA的资源

管理员

16
 
luyism 发表于 2024-5-2 07:16 论坛好像显示有点bug,以markdwon格式编辑的评论在手机版网页上无法正常显示,需要切换到电脑版网页才 ...

修复好了,你后续再用看看还有问题吧,有问题反馈我

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

17
 

ONNX模型:是一种通用的、跨平台的深度学习模型表示格式,主要用于模型的交换和转换。

RKNN模型:是专为瑞芯微硬件平台优化的模型格式,主要用于提高模型在该硬件上的运行效率。

 

留空:

补充内容 (2024-5-27 23:52): #AI挑战营第二站#多灾多难的ONNX模型转换成RKNN模型复现 - Linux与安卓 - 电子工程世界-论坛 https://bbs.eeworld.com.cn/thread-1283064-1-1.html
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

18
 

ONNX模型其实就是我们训练出来的模型的一个权重文件保存形式,我们第一站训练出来的手写识别模型一开始导出的模型为.pth结尾,那我们为什么要将其转换为.ONNX模型呢?
这是为了方便模型之间的转化,设立了一个中间模型ONNX模型,它其实就相当于.pth改了个后缀而已,但是它可以转化成其他很多模型,比如ncnn、TensorRT、TVM以及我们这里说的RKNN模型。
他充当了一个中转站的功能,类似于我们计算机网络中的交换机,充当一个转发的功能,这样我们就不用为任意两个模型都编写一个转换函数了,以后出现一个新的模型只需要编写一个将其转化为ONNX模型的函数就可以很方便的将其应用在其他不同的地方了。比如我们有3个模型,如果两两之间需要转化每个模型至少需要两个转换函数,如果有30个模型,那每个模型需要适配29个转换函数,这样是非常不合理的,而有了ONNX模型,只需要适配两个函数,一个转化为ONNX模型和一个ONNX转化为自己的函数,这样对于后期模型开发和维护也更加方便。
RKNN模型跟其他的模型也差不多,大致是权重、结构和配置,只不过它是是Rockchip NPU平台专用的模型文件格式,可以被RKNN推理引擎加载和运行。RKNN模型文件通常以.rknn后缀结尾。
RKNN模型文件通常由Rockchip NPU平台上的模型转换工具生成,也可以由用户自行编写代码生成。
Rockchip 提供了完整了模型转换 Python 工具,方便用户将自主研发的算法模型转换成 RKNN 模型,同时 Rockchip 也提供了C/C++和Python API 接口。


#AI挑战营第二站#从零开始教你使用RKNN-Toolkit进行模型转换:
https://bbs.eeworld.com.cn/thread-1281291-1-1.html

 
 
 

回复

79

帖子

1

TA的资源

一粒金砂(高级)

19
 

1、跟帖回复:什么是ONNX模型、RKNN模型

ONNX模型,我的理解为是一个介于模型训练框架,和最终模型使用之间的中间件。类似于JAVA扮演的角色。ONNX定义了一组通用的算子集、用于构建深度学习模型的模块以及一种通用的文件格式,在应用模型的层面不用再去关心模型的训练框架,使得模型更好地适应不同的硬件和软件环境。

RKNN模型的核心技术包括量化和剪枝。量化是通过减少模型中的数值精度来减少模型大小。个人理解和ONNX应该是类似的。

2、以#AI挑战营第二站#为标题前缀,发帖分享ONNX模型转换成RKNN模型过程,包含环境部署、转换代码、解读代码,并附上RKNN模型。

#AI挑战营第二站# 尝试在Windows下将ONNX转RKNN模型 https://bbs.eeworld.com.cn/thread-1281266-1-1.html

 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

20
 
吾妻思萌 发表于 2024-4-26 22:25 周末研究研究 ~~~~~~~~~~ ONNX模型和RKNN模型是两种不同格式的深度学习模型,它们各自有不同的特点和 ...

ONNX是什么? ONNX(Open Neural Network Exchange)是一个由微软提出的一种开放的神经网络交换格式,用于在不同的深度学习框架之间进行模型的转换和交流。它的设计目标是提供一个中间表示格式,使得用户可以在不同的深度学习训练和推理框架之间无缝地转换模型。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表