本帖最后由 knv 于 2024-4-28 17:21 编辑
RKNN模型是RK公司设计的一套模型格式,用于在rknpu上加速运行
ONNX模型是通用的开放模型格式,可以用于直接使用或模型转换。在专用npu上可能无法加速运行
网上搜到RV1106的RKNN模型转换需要用到下面的软件。
https://github.com/airockchip/rknn-toolkit2
RV1106文档地址如下:
https://github.com/airockchip/rknn-toolkit2/blob/master/doc/01_Rockchip_RV1106_RV1103_Quick_Start_RKNN_SDK_V2.0.0beta0_CN.pdf
环境配置:
使用ubuntu python3.9
按照文档下载仓库
安装miniconda
wget -c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
通过以下命令安装 Conda:
chmod 755 Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
进入conda环境
source ~/miniconda3/bin/activate
创建环境 python3.9版本
conda create -n hd2 python=3.9
激活环境
conda activate hd2
安装依赖
/rknn-toolkit2/rknn-toolkit2$ pip install -r packages/
注意:其中tf-estimator-nightly 使用清华源必定安装失败
使用豆瓣源 单独安装
pip install -i https://pypi.doubanio.com/simple/ tf-estimator-nightly==2.8.0.dev2021122109
安装完毕后,重新安装whl文件
经过漫长的等待,终于安装完毕
编写模型转换代码
from rknn.api import RKNN
# 创建 RKNN 对象
rknn = RKNN()
# 配置目标平台
rknn.config(mean_values=[[28]], std_values=[[28]],target_platform='rv1106')
# 加载模型
ret = rknn.load_onnx(model='model.onnx')
# 创建量化参数
ret = rknn.build(do_quantization=True,dataset="./data.txt", rknn_batch_size=1)
# 导出模型
ret = rknn.export_rknn('model.rknn')
# 释放 RKNN 对象
rknn.release()
执行结果