RKNN-Toolkit2 环境搭建
本章节所使用的模型转换环境部署于 x86_64 Linux 平台,建议在该环境下完成模型训练与转换工作。
系统版本:WSL2 Ubuntu22.04 /虚拟机 Ubuntu22.04
工具版本:RKNN-Toolkit2 2.3.2
1. RKNPU 简介
NPU(Nerual Processing Unit)是一种专门用于加速神经网络计算的处理器。为了满足人工智能的需求,瑞芯微逐渐将NPU集成到其处理器中,这种内置于瑞芯微处理器的 NPU 被称为 RKNPU。
LuckFox Aura 系列搭载的 RV1126B 内置瑞芯微第三代 RKNPU2 架构神经处理单元,提供 3.0 TOPS INT8 定点算力。支持 INT4/INT8/INT16/FP16/BF16/TF32 多精度混合量化运算,
需配合 RKNPU2 SDK 及 RKNN-Toolkit2 工具链进行模型转换与部署。
2. RKNN-Toolkit2 简介
RKNN-Toolkit2 工具在 PC 平台上提供 C 或 Python 接口,简化模型的部署和运行。用户可以通过该工具轻松完成以下功能:模型转换、量化、推理、性能和内存评估、量化精度分析以及模型加密。RKNN 软件栈可以帮助用户快速的将 AI 模型部署到 Rockchip 芯片。整体的框架如下:
为了使用 RKNPU,用户需要首先在计算机上运行 RKNN-Toolkit2 工具,将训练好的模型转换为 RKNN 格式模型,之后使用 RKNN C API 或 Python API 在开发板上进行部署。本节介绍用户如何快速在 RV1126B 系列板子上使用 RKNPU。
3. RKNN-Toolkit2 安装(ubuntu22.04 X86_64平台)
本部分提供两种安装方式,推荐使用 Conda 创建 python 虚拟环境,可以在多个应用场景下灵活切换,避免出现版本不匹配而无法运行等问题。实例在 AI 模型的训练和模型的转换过程中需要使用不同的 python 虚拟环境。
3.1 本地安装
环境要求
操作系统版本 Ubuntu18.04(x64) Ubuntu20.04(x64) Ubuntu22.04(x64) Python版本 3.6/3.7 3.8/3.9 3.10/3.11 下载rknn-toolkit2
git clone https://github.com/airockchip/rknn-toolkit2.git安装python环境
sudo apt-get update
sudo apt-get install python3 python3-dev python3-pip
sudo apt-get install libxslt1-dev zlib1g zlib1g-dev libglib2.0-0 libsm6 libgl1-mesa-glx libprotobuf-dev gcc安装RKNN-ToolKit2依赖包
pip3 install -r rknn-toolkit2/packages/requirements_cpxx-2.2.0.txt
# such as:
pip3 install -r rknn-toolkit2/packages/requirements_cp310-2.2.0.txt根据不同的Python版本,选择安装对应的依赖包:
Python版本 RKNN-Toolkit2依赖包 3.6 requirements_cp36-2.2.0.txt 3.7 requirements_cp37-2.2.0.txt 3.8 requirements_cp38-2.2.0.txt 3.9 requirements_cp39-2.2.0.txt 3.10 requirements_cp310-2.2.0.txt 3.11 requirements_cp311-2.2.0.txt 3.12 requirements_cp312-2.2.0.txt 安装RKNN-ToolKit2
pip3 install rknn-toolkit2/packages/rknn_toolkit2-x.x.x+xxxxxxxx-cpxx-cpxx-linux_x86_64.whl
# such as:
pip3 install rknn-toolkit2/packages/rknn_toolkit2-2.2.0+81f21f4d-cp310-cp310-linux_x86_64.whl包名格式为:
rknn_toolkit2-{版本号}+{commit 号}-cp{Python 版本}-cp{Python 版本}-linux_x86_64.whl,根据不同的Python版本,选择安装对应的安装包:Python版本 RKNN-Toolkit2安装包 3.6 rknn_toolkit2-2.2.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.7 rknn_toolkit2-2.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.8 rknn_toolkit2-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.9 rknn_toolkit2-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.10 rknn_toolkit2-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.11 rknn_toolkit2-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.12 rknn_toolkit2-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 若执行以下命令没有报错,则安装成功:
python3
from rknn.api import RKNN
3.2 Conda 安装
3.2.1 安装 miniconda 工具
检查是否安装了miniconda 或其他 conda 工具,如果有输出版本号说明已经安装。
conda --version下载安装包
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh安装miniconda
chmod 777 Miniconda3-4.6.14-Linux-x86_64.sh
bash Miniconda3-4.6.14-Linux-x86_64.sh注意:miniconda 的安装包必须使用
chmod 777来设置权限。执行安装后输入回车阅读许可条款,输入
yes接受许可继续安装,再次输入回车会在家目录下创建miniconda文件夹,后续创建的虚拟环境会放置在此处。最后再输入一次yes进行 Conda 初始化 。
在计算机的终端窗口,进入 Conda base环境
source ~/miniconda3/bin/activate # miniconda3 安装的目录(自定义安装根据实际情况进行修改)
# 成功后,命令行提示符会变成以下形式:
# (base) xxx@xxx:~$如果你想在每次打开终端时都自动激活 Miniconda 环境,你可以将激活命令添加到你的 shell 配置文件中:
vim nano ~/.bashrc
#在文件末尾添加以下行:
source ~/miniconda3/bin/activate
#退出conda环境
conda deactivate
3.2.2 创建 RKNN-Toolkit2 Conda 环境
创建 RKNN-Toolkit2 开发 Conda 环境,
-n参数表示环境名称,指定 python 版本为3.8(建议版本)conda create -n RKNN-Toolkit2 python=3.9- 输入
y确认安装默认的安装包。
- 输入
进入 RKNN-Toolkit2 Conda 环境
conda activate RKNN-Toolkit2验证 Python 版本是否使用正确
python --version- 注意:部分开发环境在创建 Conda 环境后 Python 版本没有正常切换,重新启动终端可以解决。
获取 RKNN-Toolkit2 安装包
git clone https://github.com/airockchip/rknn-toolkit2.git进入文件夹
cd rknn-toolkit2安装 RKNN-Toolkit2 相关的依赖库,
cp38为对应的 Conda 环境 python 版本,实验使用的版本为 3.8 所以使用后缀为cp38的依赖项pip install tf-estimator-nightly==2.8.0.dev2021122109
pip install -r rknn-toolkit2/packages/requirements_cp39-2.2.0.txt -i https://pypi.mirrors.ustc.edu.cn/simple/不换源下载速度太慢会导致安装失败。如果更换源,有时你选择的镜像源可能暂时不可用或者受到访问限制,这可能会导致下载失败。你可以尝试切换到其他可用的镜像源。
#常用pip镜像源:
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
安装 RKNN-Toolkit2
pip install rknn-toolkit2/packages/rknn_toolkit2-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl- 根据 python 版本,选择
packages文件夹下的安装包文件,其中的81f21f4d为 commit 号,根据实际情况进行选择。使用 python3.8 对应带有cp38后缀的安装包。
- 根据 python 版本,选择
验证是否安装成功,如果没有报错说明安装成功。
python
>>> from rknn.api import RKNN