RKNN部署记录-2(RKNN python API安装,使用

本文介绍了如何在Linux系统中使用rknn-toolkit进行模型部署,包括查询磁盘容量、NPU驱动版本,安装必要的库,以及在Python脚本中运行板端推理。遇到的invalidrknnmodelversion错误被解释为缺少库文件,并提供了解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看Linux磁盘容量:

df -h

 查询NPU驱动版本:

 dmesg | grep -i rknpu 
# 或
 cat /sys/kernel/debug/rknpu/version 
# 或
 cat /sys/kernel/debug/rknpu/driver_version 
# 或
 cat /proc/debug/rknpu/driver_version

查询python版本并退出

python3

exit()

安装pip,numpy,ruamel.yaml,psutils

sudo apt-get update

apt-get install python3-pip

sudo apt-get install -y python3-numpy

sudo apt-get install ruamel.yaml

sudo apt-get install psutils

查询对应版本rknn lite 2库

GitHub - rockchip-linux/rknn-toolkit2

安装rknn-toolkit lite 2

# Python 3.10
 pip3 install rknn_toolkit_lite2-x.y.z-cp310-cp310-linux_aarch64.whl

(我使用的:rknn_toolkit_lite2-2.0.0b0-cp310-cp310-linux_aarch64)

python脚本运行板端推理

import time
import numpy as np
import platform
from rknnlite.api import RKNNLite
input_data = np.load('./test_input.npy')
rknn_lite = RKNNLite(verbose = False)
i = 0

print('--> Load RKNN model')
ret = rknn_lite.load_rknn('mobilenet_v1.rknn')
if ret != 0:
    print('Load RKNN model failed')
    exit(ret)
print('done')

print('--> Init runtime environment')
ret = rknn_lite.init_runtime()
if ret != 0:
   print('Init runtime environment failed')
   exit(ret)
print('done')

while i<100:
	start_time = time.time()
	# Inference
	print('--> Running model')
	outputs = rknn_lite.inference(inputs=[input_data])

	end_time = time.time()
	execution_time = end_time - start_time
	print(execution_time)
	i+=1

rknn_lite.release()
print('done')

运行时报错,

invalid rknn model version 6

将  .\rknpu2\runtime\Linux\librknn_api\aarch64\librknnrt.so 文件复制到Linux下 /usr/bin/目录下即可成功运行

还有一些遇到的问题见RKNN部署记录-1-优快云博客

备份开发板镜像:

参考:

使用U盘加载并解压backup.zip文件

使用mount挂载U盘,U盘为。参考:Linux 设备挂载命令mount及U盘、移动硬盘、光盘的挂载_linux unmount u盘-优快云博客

进入script目录运行.sh文件

然后生成镜像文件:

参考(北京迅为rk3568资料):

 

### RKNN 模型部署的方法与教程 RKNN (Rockchip Neural Network) 是一种专为 Rockchip 芯片优化的神经网络模型格式,广泛应用于嵌入式设备中的 AI 推理任务。以下是关于 RKNN 模型部署的相关方法和教程: #### 一、环境准备 在 Ubuntu 系统上安装 rknn-toolkit 是 RKNN 部署的第一步。此工具包提供了将主流框架(如 PyTorch 和 TensorFlow)训练好的模型转换为 RKNN 格式的功能[^1]。 ```bash pip install rknn-api ``` 上述命令用于安装 Python 版本的 `rknn-toolkit` 工具包。如果目标是轻量级应用,则可以考虑使用 `rknn-toolkit-lite` 的版本。 --- #### 二、模型转换流程 通过 rknn-toolkit 将 PyTorch 或其他框架下的模型转换为 RKNN 格式是一个核心环节。具体过程如下所示: 1. **加载原始模型** 使用 PyTorch 加载预训练模型并将其设置为评估模式。 2. **配置输入节点信息** 定义模型的输入张量形状以及数据类型。 3. **执行转换操作** 利用 `RKNN()` 类完成模型文件的导出工作。 以下是一段完整的代码示例: ```python from rknn.api import RKNN # 创建 RKNN 对象实例 rknn = RKNN() # 导入 ONNX/PyTorch/TensorFlow 模型 print('--> Loading model') ret = rknn.load_pytorch(model='./model.pth', input_size_list=[[1, 3, 224, 224]]) if ret != 0: print('Load PyTorch model failed!') exit(ret) # 构建 RKNN 模型 print('--> Building model') ret = rknn.build(do_quantization=True, dataset='./dataset.txt') if ret != 0: print('Build RKNN model failed!') exit(ret) # 导出 RKNN 文件 print('--> Exporting RKNN model') ret = rknn.export_rknn(path='converted_model.rknn') if ret != 0: print('Export RKNN model failed!') exit(ret) ``` 以上脚本实现了从 PyTorch 模型到 RKNN 模型的完整转换逻辑。 --- #### 三、模型量化与精度提升 为了减少存储空间占用并加速推理速度,在构建阶段通常会启用量化选项 (`do_quantization`)。然而,量化可能会引入一定的精度损失。因此,可以通过混合量化技术来平衡性能与准确性之间的关系。 --- #### 四、开发板上的实际部署RKNN 模型准备好之后,下一步就是将其部署至硬件平台。这一步骤主要依赖于两种方式实现: - **Python SDK 方式**: 基于 `rknn-toolkit-lite` 提供的功能接口调用模型进行预测运算; - **C/C++ API 方式**: 更加贴近底层硬件控制,适合资源受限场景下运行。 对于前者而言,下面给出一段简单的推理解码例子: ```python import cv2 from rknn.api import RKNNLite # 初始化 RKNN Lite 实例 rknn_lite = RKNNLite() # 加载本地 RKNN 文件 ret = rknn_lite.load_rknn('./converted_model.rknn') if ret != 0: print('Load RKNN model failed.') exit(ret) # 设置输入图像路径 img_path = './test.jpg' orig_img = cv2.imread(img_path) img = cv2.resize(orig_img, (224, 224)) img = img.astype(np.float32)[np.newaxis, :] # 执行前向传播计算 outputs = rknn_lite.inference(inputs=[img]) print(outputs) ``` 而对于后者来说,则需参照官方文档编写对应的 C 应用程序[^7]。 --- #### 五、性能评估与调试技巧 最后一点非常重要的是要对已部署的应用进行全面测试验证其表现如何满足预期需求。包括但不限于以下几个方面指标考量:吞吐率(Throughput),延迟(Latency),功耗(Power Consumption)等等[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值