瑞芯微 Rockchip RKNN-Toolkit 环境搭建

瑞芯微 Rockchip RKNN-Toolkit 环境搭建

flyfish

RKNN-Toolkit介绍

RKNN-Toolkit是一个软件开发工具包,为用户提供在 PC 和 Rockchip NPU 平台上的模型转换、推理和性能评估。RKNN-Toolkit-Lite 为 Rockchip NPU 平台提供 Python 编程接口,帮助用户部署 RKNN 模型,加速人工智能应用程序的实现。

环境

Ubuntu 18.04
Python 3.6.9(Ubuntu 18.04自带)
官网地址 https://github.com/rockchip-linux/rknn-toolkit
版本:rknn-toolkit-v1.7.1

安装python相关程序

sudo apt-get install libpython3-dev
sudo apt-get install python3-venv

设置国内源

为了能够快速安装,最好设置国内源
创建~/.pip目录

mkdir -p ~/.pip

创建pip.conf

gedit ~/.pip/pip.conf

pip.conf内容如下

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
 
[install]
trusted-host=mirrors.aliyun.com

升级pip和相关工具

pip3 install --upgrade pip
python3 -m pip install --upgrade setuptools

创建虚拟环境

python3 -m venv python-rknn-1.7.1

激活虚拟环境

进行python-rknn-1.7.1目录执行

source bin/activate

安装rknn-toolkit-v1.7.1

下载source code和package
下载地址 https://github.com/rockchip-linux/rknn-toolkit/releases
瑞芯微 Rockchip RKNN-Toolkit 环境搭建_第1张图片

这里选择Version 1.7.1版本(此处也可以根据自己的python环境,安装rknn-toolkit-v1.7.3版本的 requirements-*.txt)
进入rknn-toolkit-v1.7.1-packages\packages目录 安装深度学习框架
此处根据自己是CPU环境还是GPU环境选择按照
也可以根据自己需要按照某个深度学习框架
CPU

pip install -r requirements-cpu.txt 

GPU

pip install -r requirements-gpu.txt

进入rknn-toolkit-v1.7.1-packages\packages安装rknn_toolkit-1.7.1

pip  install  ./rknn_toolkit-1.7.1-cp36-cp36m-linux_x86_64.whl 

瑞芯微 Rockchip RKNN-Toolkit 环境搭建_第2张图片

测试
进入源码目录

rknn-toolkit-1.7.1\examples\tflite\mobilenet_v1

执行python test.py
瑞芯微 Rockchip RKNN-Toolkit 环境搭建_第3张图片

结果

--> config model
done
--> Loading model
done
--> Building model
W The target_platform is not set in config, using default target platform rk1808.
--> Export RKNN model
done
--> Init runtime environment
librknn_runtime version 1.7.1 (bd41dbc build: 2021-10-28 16:15:23 base: 1131)
done
--> Running model
mobilenet_v1
-----TOP 5-----
[156]: 0.8642578125
[155]: 0.08380126953125
[205]: 0.01241302490234375
[284]: 0.00656890869140625
[194]: 0.002044677734375

done
--> Evaluate model performance
W When performing performance evaluation, inputs can be set to None to use fake inputs.
========================================================================
                               Performance                              
========================================================================
Layer ID    Name                                         Time(us)
60          openvx.tensor_transpose_3                    72
1           convolution.relu.pooling.layer2_2            369
3           convolution.relu.pooling.layer2_2            211
5           convolution.relu.pooling.layer2_2            184
7           convolution.relu.pooling.layer2_2            315
9           convolution.relu.pooling.layer2_2            99
11          convolution.relu.pooling.layer2_2            137
13          convolution.relu.pooling.layer2_2            103
15          convolution.relu.pooling.layer2_2            116
17          convolution.relu.pooling.layer2_2            95
19          convolution.relu.pooling.layer2_2            102
21          convolution.relu.pooling.layer2_2            151
23          convolution.relu.pooling.layer2_2            95
25          convolution.relu.pooling.layer2_2            109
27          convolution.relu.pooling.layer2_2            106
29          convolution.relu.pooling.layer2_2            211
31          convolution.relu.pooling.layer2_2            106
33          convolution.relu.pooling.layer2_2            211
35          convolution.relu.pooling.layer2_2            106
37          convolution.relu.pooling.layer2_2            211
39          convolution.relu.pooling.layer2_2            106
41          convolution.relu.pooling.layer2_2            211
43          convolution.relu.pooling.layer2_2            106
45          convolution.relu.pooling.layer2_2            211
47          convolution.relu.pooling.layer2_2            108
49          convolution.relu.pooling.layer2_2            163
51          convolution.relu.pooling.layer2_2            206
53          convolution.relu.pooling.layer2_2            319
55          pooling.layer2                               34
56          fullyconnected.relu.layer_3                  110
58          softmaxlayer2.layer                          39
Total Time(us): 4722
FPS(600MHz): 158.83
FPS(800MHz): 211.77
Note: Time of each layer is converted according to 800MHz!
========================================================================

环境搭建完成

你可能感兴趣的:(嵌入式深度学习)