跳到主要内容

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 本地安装

  1. 环境要求

    操作系统版本Ubuntu18.04(x64)Ubuntu20.04(x64)Ubuntu22.04(x64)
    Python版本3.6/3.73.8/3.93.10/3.11
  2. 下载rknn-toolkit2

    git clone https://github.com/airockchip/rknn-toolkit2.git
  3. 安装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
  4. 安装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.6requirements_cp36-2.2.0.txt
    3.7requirements_cp37-2.2.0.txt
    3.8requirements_cp38-2.2.0.txt
    3.9requirements_cp39-2.2.0.txt
    3.10requirements_cp310-2.2.0.txt
    3.11requirements_cp311-2.2.0.txt
    3.12requirements_cp312-2.2.0.txt
  5. 安装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.6rknn_toolkit2-2.2.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    3.7rknn_toolkit2-2.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    3.8rknn_toolkit2-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    3.9rknn_toolkit2-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    3.10rknn_toolkit2-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    3.11rknn_toolkit2-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    3.12rknn_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 工具

  1. 检查是否安装了miniconda 或其他 conda 工具,如果有输出版本号说明已经安装。

    conda --version
  2. 下载安装包

    wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh
  3. 安装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 初始化 。

  4. 在计算机的终端窗口,进入 Conda base环境

    source ~/miniconda3/bin/activate # miniconda3 安装的目录(自定义安装根据实际情况进行修改)
    # 成功后,命令行提示符会变成以下形式:
    # (base) xxx@xxx:~$
  5. 如果你想在每次打开终端时都自动激活 Miniconda 环境,你可以将激活命令添加到你的 shell 配置文件中:

    vim nano ~/.bashrc

    #在文件末尾添加以下行:
    source ~/miniconda3/bin/activate

    #退出conda环境
    conda deactivate

3.2.2 创建 RKNN-Toolkit2 Conda 环境

  1. 创建 RKNN-Toolkit2 开发 Conda 环境, -n 参数表示环境名称,指定 python 版本为3.8(建议版本)

    conda create -n RKNN-Toolkit2 python=3.9
    • 输入 y 确认安装默认的安装包。
  2. 进入 RKNN-Toolkit2 Conda 环境

    conda activate RKNN-Toolkit2
  3. 验证 Python 版本是否使用正确

    python --version
    • 注意:部分开发环境在创建 Conda 环境后 Python 版本没有正常切换,重新启动终端可以解决。
  4. 获取 RKNN-Toolkit2 安装包

    git clone https://github.com/airockchip/rknn-toolkit2.git
  5. 进入文件夹

    cd rknn-toolkit2
  6. 安装 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/
  7. 安装 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 后缀的安装包。
  8. 验证是否安装成功,如果没有报错说明安装成功。

    python
    >>> from rknn.api import RKNN