【RV126 RKNN模型转换】

本文详细介绍了如何使用rknntoolkit将TensorFlow和Pytorch模型转换为RKNN格式,包括设置模型参数、加载模型、构建和导出模型的过程,以SSDMobileNetV1为例。
摘要由CSDN通过智能技术生成

一.RKNN模型转换流程

在这里插入图片描述

二.模型转换为RKNN模型

1.tensorflow模型转为RKNN

(1)使用vscode调用rknntoolkit提供的接口编写转换代码
以tensorflow模型为例

from rknn.api import RKNN
if name == 'main':
 确定目标设备target
target = 'rv1126'# 创建RKNN对象
rknn = RKNN()

#配置RKNN模型
print('--> config model')
rknn.config(mean_values=[[127.5, 127.5, 127.5]],
            std_values=[[127.5, 127.5, 127.5]],
            reorder_channel='0 1 2',
            target_platform=[target])
print('done')

#加载TF模型
print('--> loading model')
ret = rknn.load_tensorflow(tf_pb='./original_model/ssd_mobilenet_v1_coco_2018_01_28/frozen_inference_graph.pb',
                           inputs=['FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/batchnorm/mul_1'],
                           outputs=['concat', 'concat_1'],
                           input_size_list=[[300, 300, 3]])
if ret != 0:
    print('load model failed!')
    rknn.release()
    exit(ret)
print('done')
 构建 RKNN 模型
print('--> building model')
ret = rknn.build(do_quantization=True, dataset='./dataset/dataset3.txt')
if ret != 0:
    print('build model failed!')
    rknn.release()
    exit(ret)
print('done')

#导出 RKNN 模型
print('--> export RKNN model')
rknn.export_rknn('./rknn_model/ssd_mobilenet_v1_coco.rknn')
if ret != 0:
    print('export RKNN model failed!')
    rknn.release()
    exit(ret)
print('done')
 释放RKNN对象
rknn.release()

(2)执行运行转换的python代码(先清除说有输出然后全部运行)
在这里插入图片描述

2.Pytorch模型转换为RKNN

Pytorch转换TorchScript 或者ONNX 格式的文件的操作步骤
(1) 按照链接https://github.com/ultralytics/yolov5/issues/251 的指导,在训练的虚拟环境下(需要有训
练的GPU,不要在VMware下安装的Ubuntu中操作,否则会报错找不到libcufft.so.11)安装依赖的环境:

// 原来的文件默认安装torchvision>=0.8.1,装完后可实现将.pt文件转换为.torchvision格式文件
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
// 若需要将.pt文件转换为.onnx格式文件,仍需要再安装onxx,推荐onnx>=1.9.0
pip install onnx==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

(2)执行如下命令,将.pt文件导出.onnx或者. torchscript格式文件

// 转换为TorchScript格式,得到best.torchscript文件
python export.py --weights ./runs/train/exp/weights/best.pt --img 640 --batch 1 --include torchscript
// 转换为ONNX格式,得到best.onnx文件
python export.py --weights ./runs/train/exp/weights/best.pt --img 640 --batch 1 --include onnx
// 若需要指定opset,可根据安装的onnx库的版本来调整,如安装的onnx库的版本是1.12.0,后面加上--opset 12
python export.py --weights ./runs/train/exp/weights/best.pt --img 640 --batch 1 --include onnx --opset 12

三.模型文件目录介绍

以为tensorflow模型架构下的ssd_mobilenet_v1_coco 为例
在这里插入图片描述

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值