rk3568环境配置和推理报错: RKNN_ERR_MALLOC_FAIL

前言
最近在部署算法在板子侧遇到的一些问题汇总一下:

一、版本问题

经过测试现在将自己环境配置如下:在这里插入图片描述
在这里插入图片描述

本地linux安装rknn-toolkit2-1.5.0

  1. 本地Linux使用的miniconda新建的一个python虚拟环境(自行网上查找相关方法)
    在这里插入图片描述
  2. 安装好自己的虚拟环境之后:安装所需的依赖包
 sudo apt-get install libxslt1-dev zlib1g-dev libglib2.0 libsm6 libgl1-mesa-glx libprotobuf-dev gcc 
  1. 将官方的RKNN-Toolkit2库git到linux本地:(如果提示没有找到git命令,使用:sudo apt install git-all安装git工具)
 git clone https://github.com/rockchip-linux/rknn-toolkit2

在这里插入图片描述

  1. 进入 Toolkit2 工程文件夹, 根据工程的保存路径修改 cd 命令中的路径。
cd ~/rknn-toolkit2
  1. 安装必要相应版本的依赖包(这里我安装和我自己linux匹配的py3.8版本)
 pip3 install -r doc/requirements_cp38-1.5.0 
  1. 安装 RKNN-Toolkit2(Python3.6 for x86_64)
 pip3 install package/rknn_toolkit2-1.5.0+1fa95b5c-cp38-cp38-linux_x86_64
  1. 检查 RKNN-Toolkit2 是否安装成功。 出现这个界面,就说明本地linux端的安装已经成功,
    在这里插入图片描述
  2. 可以运行官方的examples案例检测:rknn-toolkit2/examples/onnx/yolov5
    在这里插入图片描述

板子RK3568环境安装

  1. git源码到板子上
git clone https://github.com/rockchip-linux/rknn-toolkit2
cd ./rknn_toolkit_lite2

文件结构如下:
在这里插入图片描述

  1. 环境安装
 sudo apt update
#安装python工具等
sudo apt-get install python3-dev python3-pip gcc
#安装相关依赖和软件包
pip3 install wheel
sudo apt-get install -y python3-opencv
sudo apt-get install -y python3-numpy
sudo apt -y install python3-setuptools
  1. Toolkit Lite2工具安装:
# 进入到rknn_toolkit_lite2目录下,
cd rknn_toolkit_lite2/
# ubuntu22 python3.7
pip3 install packages/rknn_toolkit_lite2-1.5.0-cp310-cp310m-linux_aarch64.whl
  1. 检测安装成功
python3
>>> from rknnlite.api import RKNNLite
>>>
  1. 运行官方的demo
    此时运行一定是在rknn_toolkit_lite2这个文件下找到examples进行运行:

运行我的demo:仓库地址:https://gitee.com/wangyoujie11/rk3568_-demo
在这里插入图片描述
Mnist_PC放在本地电脑的linux环境下,激活自己的python虚拟环境,然后python test.py就可以运行
Mnist_rk3568放在板子的linux环境下,然后python3 rk3568_test.py就可以运行
运行结果分别如下:
pc端(程序里加载的1.png):
在这里插入图片描述
RK3568板子端(程序里加载的7.png):
在这里插入图片描述

---------------------------------------------分割线(不定期更新)-----------------------------------------

问题一

在使用RK3568开发板的时候,在板子侧部署.rknn模型推理的时候报错:*Exception: RKNN init failed. error code: RKNN_ERR_MALLOC_FAIL*

请添加图片描述
然后查看官方的手册发现报错提示:内存分配失败
但是没有对应的解决方法,只能自己debug了(一杯茶,一包烟,一个bug找一天)…
后面发现问题所在:我的.onnx模型输出如下:有多个输出,导致在本地linux下可以运行自己的模型,但是在板子上由于资源受限,导致板子的内存分配失败。所以解决的办法就是将自己的.onnx模型的输出给减少。https://netron.app/可以将自己的.onnx模型加载看输入输出
在这里插入图片描述

#原xxx.onnx文件放在onnx文件夹下,然后创建一个新的文件夹newonnx用来存放新的.onnx模型
#版本说明这里的.onnx模型是在pytorch版本1.6.0~1.10.1直接训练的模型,并且在onnx版本在1.7.0~1.10.0之间
import onnx
model = onnx.load('./onnx/xxx.onnx')
node = model.graph.output[1]
model.graph.output.remove(node)
onnx.save(model, './newonnx/xxx.onnx')model = onnx.load('./newonnx/xxx.onnx')
for i in range(1,9): #根据自己要删除的节点设置范围node = model.graph.output[1]model.graph.output.remove(node)onnx.save(model, './newonnx/xxx.onnx')

在这里插入图片描述
经过上面的代码裁剪.onnx模型之后
在这里插入图片描述
得到这个新的.onnx模型之后,就可以由本地Linux运行rknn的对应api将.onnx模型转为.rknn模型,然后将.rknn模型在板子上进行推理了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/143231.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android导航抽屉

本文所有代码均位于https://github.com/MADMAX110/CatChat 之前使用过标签页布局可以让用户在应用中轻松地导航。 当只有为数不多地几个类别屏幕,而且它们都在应用层次结构地同一级上,标签页布局就很适用。 而抽屉导航可以实现更多选择,这是一…

python(自4) xpath下载 lxml安装 lxml语法 使用方式

(一)安装 搜索xpath 讲解 XPath 教程 (w3school.com.cn) 一,下载地址 : https://chrome.zzzmh.cn/info/hgimnogjllphhhkhlmebbmlgjoejdpjl 二 ,拖拽 (二)lxml安装 cmd 打开终端 cd pythond…

JAVA中使用CompletableFuture进行异步编程

JAVA中使用CompletableFuture进行异步编程 1、什么是CompletableFuture CompletableFuture 是 JDK8 提供的 Future 增强类,CompletableFuture 异步任务执行线程池,默认是把异步任 务都放在 ForkJoinPool 中执行。 在这种方式中,主线程不会…

Textpad 缺少Java编译和运行功能

一、问题 缺少Java编译和运行功能 二、处理方法 1、点击菜单Configure->Preferences 2、点击 Tools -> Add -> Java SDK Commands 3、点击应用和确认 三、结果

MATLAB算法实战应用案例精讲-【优化算法】Tiki-taka算法(TTA)(附MATLAB代码实现)

前言 Tiki-Taka战术体系曾经帮助西班牙国家队及巴塞罗那俱乐部取得了巨大的成功。然而,在2018年世界杯西班牙全场传球1100余次(职业比赛场均传球500次左右,西班牙场均800次左右)却被控球率只有20%的俄罗斯淘汰后,人们开始意识到大量机械的传球不但会让球迷觉得枯燥乏味,…

基于微信小程序的停车场预约收费小程序设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

【数据结构】冒泡排序,快速排序的学习知识总结

目录 1、冒泡排序 1.1 算法思想 1.2 代码实现 方式一:顺序表 方式二:链表 2、快速排序 2.1 算法思想 2.2 代码实现 2.3 例题分析 1、冒泡排序 1.1 算法思想 冒泡排序是一种简单的排序算法,它的基本思想是从数组的第一个元素开始…

ahk系列——ahk_v2实现win10任意界面搜狗翻译

1、准备环境 win10或者以上系统安装ahkv2_64环境,安装包安装好后会有32和64位的unicode版本准备一个编译器,我用idea,不会ahk编程的我会把编译好的exe连接放到最后需要 联网 才能翻译 2、 使用方法 选中需要翻译的文字,然后ctr…

【OSCAR开源产业大会分论坛】开源大模型走向何方?

再过俩月,ChatGPT 即将迎来推出一周年纪念日。作为开历史先河的 AI 大模型,ChatGPT 像一针猛戳进千行百业中枢神经的兴奋剂,在全球掀起空前绝后的 AI 军备竞赛热潮。 近一年来,我们看到 GPT-3.5 完成向多模态的 GPT-4 进化&#x…

[Realtek sdk-3.4.14b]RTL8197FH-VG 2.4G to WAN吞吐量低于60%的问题分析及解决方案

问题描述 RTL8197FH-VG 2.4G wifi to WAN吞吐量低于65%的标准,正常2T2R的wifi 300Mbps x 65% = 195Mbps,但是实际只能跑到160Mbps,这个时候CPU的idl已经为0,sirq占用率达到98%左右 网络拓扑 一台PC通过2.4G WiFi连接到RTL8197FH-VG,另外一台PC直接通过WAN口连接到RTL8197…

【Verilog教程】6.7 Verilog流水线

关键词:流水线,乘法器 硬件描述语言的一个突出优点就是指令执行的并行性。多条语句能够在相同时钟周期内并行处理多个信号数据。 但是当数据串行输入时,指令执行的并行性并不能体现出其优势。而且很多时候有些计算并不能在一个或两个时钟周期…

美篇作文网教学资源源码-自带作文数据

非常漂亮的UI设计和页面排版! 自适应手机pc端 页面内容均支持自定义 可以用来做网站矩阵,或者增强你其他网站板块,或者单独运营都可以。 可以通过广告方式变现,或者引流等等 友好的seo,更容易被浏览器收录 关注青狐…

LINUX|ubuntu常用指令

文章目录 查看IP显示当前路径下所有文件安装编译工具GCC、调试工具GDB、连接工具SSHmkdir 创建目录export命令显示当前系统定义的所有环境变量echo $PATH命令输出当前的PATH环境变量的值当前命令行添加环境变量,关闭失效,防止多版本库冲突时使用sudo su打…

新移科技发布基于联发科MT8390(Genio 700)平台的物联网 AI 核心板

新移科技研发的XY8390物联网 AI 核心板是一款高度集成、功能强大的平台,该核心板专为各种人工智能 (AI) 和物联网 (IoT) 用例而设计。 处理器采用了 Arm DynamIQ™ 技术,结合了高性能 Cortex-A78 内核和高能效 Cortex-A55 内核,并配备了 Arm …

二维平面扭曲的python实现及思路

二维平面扭曲的python实现及思路 缘起原理实现代码 缘起 工作需要,需要一个尝试改变设备布点的方法,在csdn闲逛时,偶然间发现这样的一篇文章 二维扭曲,参考这位博主的文章,我对其内容进行复现和进一步挖掘。若有侵权或…

四川玖璨电子商务有限公司抖音电商界的领跑者

在当今的电商市场中,四川玖璨电子商务有限公司以其卓越的表现和领先的地位,被广大消费者和业内人士所认可。作为抖音电商领跑者,该公司以其精湛的产品和服务,创新的营销策略,及客户至上的理念,成为这个充满…

爬取北京新发地当天货物信息并展示十五天价格变化(三)---获取物品十五天内的价格

。。。。。。。。。。。。。。。。。。。。。。 1.网页请求一下内容2.通过爬虫进行请求3.获取商品十五天详细数据并绘制折线图4.项目详细代码 1.网页请求一下内容 通过抓包我们发现一共七个参数 limit: 20 # 一页多少数据 current: …

JPA的注解@Field指定为Keyword失败,导致查询不到数据

一、背景 使用 jpa 对es操作,查询条件不生效,需求是批量查询课程编号。说白了,就是一个In集合的查询。在es里,如果是精准匹配是termQuery,比如: queryBuilder.filter(QueryBuilders.termQuery(“schoolId…

C++ placement new使用

placement new重载来原来的operator new,且placement new不能被即需重载 placement new是在原有的一块地址上继续创建一个对象,注意对象类型要一致,这样的操作的优势有两个: 1、不用花时间在找合适的空间存放新对象,…

华为云云耀云服务器L实例评测|使用华为云耀云服务器L实例的CentOS部署Docker并运行Tomcat应用

目录 前言 步骤1:登录到华为云耀云服务器L实例 步骤2:安装Docker 并验证Docker安装 步骤3:拉取Tomcat镜像并运行Tomcat容器 步骤4:放行8080端口 步骤5:访问tomcat 步骤6:管理Tomcat容器 小结 前言 …