4409|4

57

帖子

5

TA的资源

一粒金砂(高级)

楼主
 

#AI挑战营第二站# Windows下ONNX转RKNN模型过程 [复制链接]

本帖最后由 MioChan 于 2024-4-26 23:53 编辑

 

第一步:环境配置

在rknn-toolkit git仓库:

链接已隐藏,如需查看请登录或者注册
 的release里下载1.7.5压缩包,解压后能看见多个平台的whl文件,这里因为我用的是win所以选择

rknn_toolkit-1.7.5-cp36-cp36m-win_amd64.whl这个文件。

 

另外这个库并不支持高版本的python,建议还是新建一个python 3.6 的conda虚拟环境,另外这个库有各种依赖,pytorch、tensorflow之类的都得装才能正常运行,而且版本不能太高。

conda create --name=RKNN python=3.6.13

激活环境

conda activate RKNN

升级一下pip顺便换个清华源

python -m pip install --upgrade
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

手动安装一下这几个库,其他的在安装rknn-toolkit会自动安装

pip install scikit-build
pip install opencv-python==4.3.0.38
pip install torch==1.10.1 torchversion==0.11.2
pip install tensorflow==1.15.5
pip install matplotlib

 

安装之前下好的whl文件

pip install rknn_toolkit-1.7.5-cp36-cp36m-win_amd64.whl 

注意如果命令行的当前路径不是whl所在的文件夹需要在whl文件名前带上其路径,像下面这样

pip install E:\rknn_toolkit-1.7.0-cp36-cp36m-win_amd64.whl

正常来说就可以顺利运行了,但如果是缺少其他库,自己看报错用pip install或conda install缺啥装啥就行了

 

第二步:编写代码完成转换

from rknn.api import RKNN

# 创建 RKNN 对象
rknn = RKNN()
# 加载 ONNX 模型
ret = rknn.load_onnx(model='mnist_cnn.onnx')

# 模型配置
rknn.config(mean_values=[[128]], std_values=[[128]]) #图片归一化到【-1,1】
# 模型转换
ret = rknn.build(do_quantization=False)  # 这里设置是否量化

# 保存 RKNN 模型
ret = rknn.export_rknn('mnist_cnn.rknn')

# 释放 RKNN 对象
rknn.release()

另外,ONNX版本不能超过11,否则转换会报错 ,在之前任务中的导出onnx的代码带上版本设置参数即可

# 导出模型到ONNX格式
torch.onnx.export(model, dummy_input, 'mnist_cnn.onnx',
                  input_names=['input'], output_names=['output'],  # 输入和输出节点名称
                  do_constant_folding=True,  # 是否执行常量折叠优化
                  export_params=True,  # 是否包含权重
                    opset_version=10, #设置版本
                  verbose=True)  # 是否打印转换细节

 

mnist_cnn.rknn

832.07 KB, 下载次数: 1

mnist_cnn.pth

1.61 MB, 下载次数: 0

mnist_cnn.onnx

1.63 MB, 下载次数: 2

最新回复

我也遇到了这个问题,好像是终端日志的写入进程被占用了,以下是解决方法: 在创建rknn对象的时候指定日志的输出目录即可,我是在当前目录创建一个output.txt去接收,这样就不会报进程被占用了   详情 回复 发表于 2024-5-15 14:23
点赞 关注

回复
举报

755

帖子

4

TA的资源

纯净的硅(高级)

沙发
 

楼主分享的有关Windows下ONNX转RKNN模型过程的环境配置内容对初学者帮助很大,感谢楼主

 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

onnx版本不能太高,这个bug好神奇

 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

4
 
求,rknn.config这种问题怎么解决呢,PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\24423\\AppData\\Local\\Temp\\tmpx00mgkkk\\log_feedback_to_the_rknn_toolkit_dev_team.log'
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
xianhangCheng 发表于 2024-5-8 11:16 求,rknn.config这种问题怎么解决呢,PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法 ...

我也遇到了这个问题,好像是终端日志的写入进程被占用了,以下是解决方法:

在创建rknn对象的时候指定日志的输出目录即可,我是在当前目录创建一个output.txt去接收,这样就不会报进程被占用了

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
空调风扇控制板

功能特点: 操作面板上共有6个轻触(功能)开关,分别为"开关"(电源)、"定时"、"风速"、"制冷""加热"、"摆叶"、等。在工作状态 ...

运放使用单电源遇到的问题(checked)

本帖最后由 辛昕 于 2018-4-8 22:56 编辑 关于这个帖子,其实本来有挺多话说的。 不过,忽然想想,这个帖子最大的教训就是: ...

数控电源

单片机控制开关电源有没有可能实现频率在10Hz到500KHz连续可调 做过的讲下啊 我看报道说没有办法控制精度 都是采用DDS专用芯 ...

LPC1114 移植ucGUI成功!

LPC1114 移植ucGUI成功!发贴庆祝下,欢迎下载!51685

最爱TI Stellaris发帖整理

发现很多朋友都在找一些我以前发过的资料,特意把以前自己发过的自觉对大家有一些帮助的帖子整理一下: 新年献礼:TI Stellaris ...

这样多个.c和.h文件能用keil同时打开显示不?如何操作

这样多个.c和.h文件能用keil同时打开显示不?如何操作

无线WiFi覆盖的基础知识

无线wifi覆盖的项目越来越多,在弱电VIP技术群里朋友在做wifi覆盖项目时经常会遇到一些问题,尤其是大中型无线覆盖,牵涉到信 ...

荣耀被曝强行让员工买股份:不买或被逼离职

近日,微博某大V在网上爆料荣耀强制要求员工出钱购买股份,各部门有分摊指标,甚至有员工被主管要求贷款购买,不买将可能被要求 ...

运放输出端电路设计

688107 请问这个运放电路的设计里,D1和R13是否都是运放输出短路保护呢?可不可以把二极管去除,这里接的下拉电阻和电容是否 ...

共读入围:《RISC-V开放架构设计之道》 第二轮

感谢网友参与《RISC-V开放架构设计之道》的申请,以下是入围网友信息。 入围网友请在2024年9月12日12:00前: (1)核对邮 ...

关闭
站长推荐上一条 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
快速回复 返回顶部 返回列表