2. 开发环境介绍¶
2.1. RKNN开发环境¶
在PC端主要是进行模型训练和模型转换等, 可以选择Windows系统,或者Windows上的虚拟机ubuntu,Docker的linux系统,或者云服务器等等。
在PC端需要安装常用软件和库,比如pycharm、Python、交叉编译器等, 安装一些深度学习框架,比如Pytorch,TensorFlow,PaddlePaddle等等。 各种软件的使用,建议创建虚拟环境来隔离,常用Python 虚拟环境和Anaconda或者Miniconda。
在鲁班猫板卡上,系统使用Ubuntu或者debian,内核默认适配rknn驱动,其他rknn相关组件均包含,如果需要更新请参考后面相关教程。 另外,还有一些常用的软件和库,例如python,cmake,make,gcc,opencv等等。
后面教程测试,PC端是使用 WSL2 (可以结合pycharm使用等等), 进行模型训练和转换,鲁班猫板卡系统是以Debian11、ubuntu20.04为主,进行部署推理测试。
2.2. RKNN开发流程¶
深度学习模型工作流程大致可分为训练和推理,而在板块上部署模型,具体的步骤如下:
模型训练,模型训练前需要根据具体项目问题,选择模型,数据采集,然后使用适合的深度学习框架进行模型训练, 其中关于RKNN模型算子的支持请参考 RKNN_Compiler_Support_Operator_List 。
模型转换,将训练的深度学习模型会被转化为RKNN格式的模型。
模型评估,将使用RKNN-Toolkit2工具量化和分析模型性能,包括精度、连板推理性能和内存占用等关键指标, 根据模型的评估尝试修改和优化模型,一些模型的优化可以参考下 RKNPU_User_Guide_RKNN_SDK 。
板端推理,将转换的RKNN模型部署到板卡上,具体可以查看下rknpu运行库和 RKNN-Toolkit-lite2 的使用。
2.3. 相关软件安装¶
以下软件和工具都是在个人电脑上安装。
2.3.1. Anaconda安装¶
Anaconda是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的众多流行的科学计算、数据分析包。
Anaconda安装可以从官网网页直接下载,打开 https://www.anaconda.com/download#downloads ,根据系统选择不同的版本安装, 教程测试使用ubuntu20.04,选择linux的安装包:
或者使用下面命令直接获取安装包:
wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
如果下载很慢,安装包也可以从镜像源获取,打开网址 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ ,选择对应的版本。 获取安装包后,在linux系统中使用默认shell执行下面命令安装:
./Anaconda3-2023.07-2-Linux-x86_64.sh
然后回车,一直往下滑动看完license,最后输入yes后,继续按下回车,然后进入安装,安装完成后输入yes初始化anaconda3:
# ...省略
The following packages listed on https://www.anaconda.com/cryptography are included in the repository accessible through Anaconda Distribution
that relate to cryptography.
Last updated February 25, 2022
Do you accept the license terms? [yes|no]
[no] >>> yes
Anaconda3 will now be installed into this location:
/home/llh/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/llh/anaconda3] >>>
PREFIX=/home/llh/anaconda3
Unpacking payload ...
Installing base environment...
Downloading and Extracting Packages
Downloading and Extracting Packages
Preparing transaction: done
Executing transaction: |
Installed package of scikit-learn can be accelerated using scikit-learn-intelex.
More details are available here: https://intel.github.io/scikit-learn-intelex
For example:
$ conda install scikit-learn-intelex
$ python -m sklearnex my_application.py
done
installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> yes
no change /home/llh/anaconda3/condabin/conda
no change /home/llh/anaconda3/bin/conda
no change /home/llh/anaconda3/bin/conda-env
no change /home/llh/anaconda3/bin/activate
no change /home/llh/anaconda3/bin/deactivate
no change /home/llh/anaconda3/etc/profile.d/conda.sh
no change /home/llh/anaconda3/etc/fish/conf.d/conda.fish
no change /home/llh/anaconda3/shell/condabin/Conda.psm1
no change /home/llh/anaconda3/shell/condabin/conda-hook.ps1
no change /home/llh/anaconda3/lib/python3.11/site-packages/xontrib/conda.xsh
no change /home/llh/anaconda3/etc/profile.d/conda.csh
modified /home/llh/.bashrc
==> For changes to take effect, close and re-open your current shell. <==
If you'd prefer that conda's base environment not be activated on startup,
set the auto_activate_base parameter to false:
conda config --set auto_activate_base false
Thank you for installing Anaconda3!
重启系统或者使用命令source ~/.bashrc 后打开终端会进入默认anaconda环境里(命令行提示符前面有一个base),就可以使用conda来创建虚拟环境和包管理:
# 重启或者使用命令source ~/.bashrc进入anaconda环境
source ~/.bashrc
# 下面列出一些常用conda命令,更多命令参考conda --help
# 创建一个环境,env_name是环境名称,后面可以指定python的版本等等
conda create -n env_name ....
# 列出创建的虚拟环境
#conda env list
conda info --envs
# 激活环境,不指定env_name时,默认进入base环境
conda activate env_name
# 移除环境,其中env_name是环境名称
conda remove -n env_name --all
# 退出当前conda环境
conda deactivate
# 每次开启终端都会默认进入anaconda环境,使用下面命令后重启就不会默认启动虚拟环境
conda config --set auto_activate_base false
默认Anaconda安装会带很多默认的库,要轻量版的可以使用 Miniconda , 默认只包含了python和conda,通过pip和conda来安装所需要的包。可以点击 链接 去下载安装,安装和使用操作类似。
Anaconda配置使用国内镜像源(可选):
# 查看默认的源
conda config --show channels
# 使用清华源,也可以自行添加其他第三方源等等
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --set custom_channels.auto https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
conda config --set show_channel_urls yes
Anaconda清华源的使用请参考下:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda 。
2.3.2. rknn-toolkit2安装¶
RKNN Toolkit2 开发套件运行在PC (x86_64/arm64)平台上,提供了模型转换、量化功能、模型推理、性能和内存评估、量化精度分析、模型加密等功能。
rknn-toolkit2安装可以参考下后面 RKNN Toolkit2介绍 章节, 或者参考下这里使用Anaconda(教程测试时toolkit2的版本是1.6.0):
# 创建一个名为toolkit2_1.6的环境,并指定python版本,
conda create -n toolkit2_1.6 python=3.8
conda activate toolkit2_1.6
# 拉取toolkit2源码
git clone https://github.com/airockchip/rknn-toolkit2
# 配置pip源
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
# pip安装指定版本的库(教程测试时toolkit2版本是1.6.0,请根据python版本选择文件安装)
cd rknn-toolkit2
pip3 install -r packages/requirements_cp38-1.6.0.txt
# 需要根据python版本和rknn_toolkit2版本选择whl文件,例如这里创建的是python3.8环境,使用带”cp38”的whl文件。
pip3 install packages/rknn_toolkit2-1.6.0+81f21f4d-cp38-cp38-linux_x86_64.whl
安装成功后会显示Successfully,我们也可以简单测试下:
(toolkit2_1.6) llh@YH-LONG:/xxx$ python
Python 3.8.18 (default, Sep 11 2023, 13:40:15)
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from rknn.api import RKNN
>>> rknn = RKNN()
W __init__: rknn-toolkit2 version: 1.6.0+81f21f4d
>>>
2.3.3. Jupyter Notebook安装¶
Jupyter Notebook是基于网页的用于交互计算的应用程序。 Jupyter Notebook以网页的形式打开,能够在每条命令编写好后,实时地查看到代码执行后的数据变化, 如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。
教程中一些章节有Jupyter Notebook文件,可以使用conda命令安装Jupyter Notebook,然后查看或者操作。
# 在一个环境中安装Jupyter
conda install jupyter notebook
也可以使用pip3安装:
# 安装Jupyter
pip3 install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple
详细修改配置,可以参考下 Jupyter官网 或者 参考下 https://doc.embedfire.com/linux/rk356x/Python/zh/latest/toolpackages/jupyter.html 。
2.3.4. 一些深度学习框架的安装¶
下面将演示一些深度学习框架的安装,具体详情可以参考下深度学习框架对应的官网。
1、paddlepaddle的安装
这里演示conda安装paddlepaddle,具体命令参考下 官网 选择对应的版本,操作系统,conda安装方式以及计算平台,就可得到对应的安装命令:
# 使用conda创建一个名为paddle的环境,并指定python版本
conda activate
conda create -n paddle python=3.8
# 进入环境
conda activate paddle
# 安装最新版本的paddlepaddle计算平台是cpu(测试安装时最新版本是2.5.1)
conda install paddlepaddle==2.5.1 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
# 验证安装成功,检测版本
python3 -c "import paddle;paddle.utils.run_check()"
如果要安装gpu版本,英伟达GPU,先使用命令nvidia-smi查看cuda支持的最高版本, 如果没有该命令需要更新或者安装下 显卡驱动 。
PS C:\Users\Administrator> nvidia-smi
Thu Sep 7 16:45:29 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 474.14 Driver Version: 474.14 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... WDDM | 00000000:01:00.0 N/A | N/A |
| 40% 0C P0 N/A / N/A | 715MiB / 2048MiB | N/A Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
提示
如果是WSL2,只需要windows下安装最新的nvidia显卡驱动,就可以在WSL2中使用nvidia-smi命令,在WSL2中安装CUDA,请参考下 NVIDIA CUDA in WSL 。
查看上面显示支持的最高版本CUDA,然后找paddlepaddle支持该CUDA版本以下的安装命令,然后安装paddlepaddle:
# 使用conda创建一个名为paddle_gpu的环境,并指定python版本
conda create -n paddle_gpu python=3.8
# 进入环境
conda activate paddle_gpu
# 安装gpu版本的paddlepaddle,cuda版本为11.2
conda install paddlepaddle-gpu==2.5.1 cudatoolkit=11.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge
# 验证安装成功,检测版本
python3 -c "import paddle;paddle.utils.run_check()"
也可以自行安装CUDA和cudnn(这时需要注意实际使用的是Conda中安装cuda和自己安装cuda), 参考下网址:https://developer.nvidia.com/cuda-toolkit-archive 、https://developer.nvidia.com/rdp/cudnn-archive 。
2、TensorFlow安装
可以使用python3-venv或者anaconda创建一个虚拟环境,然后使用pip安装。
使用python虚拟环境:
# 安装python,更新pip,需要使用Python 3.6-3.9 和 pip 19.0及更高版本
sudo apt update
sudo apt install python3-dev python3-pip python3-venv
sudo python3 -m pip install pip --upgrade
# 一般都创建一个虚拟环境使用
sudo python3 -m venv .tensorflow_venv
# 激活环境
source .tensorflow_venv/bin/activate
# 直接命令安装最新稳定版tensorfolw,也可以指定下以前版本(GPU和CPU版本已经合并),
# GPU版本使用需要安装CUDA和cudnn,参考下前面链接
pip3 install tensorflow
# 验证安装成功,查看版本
python3 -c "import tensorflow as tf;print(tf.__version__)"
或者使用conda创建一个虚拟环境:
# 使用conda创建一个名为paddle的环境,并指定python版本
conda create -n TensorFlow python=3.8
# 进入环境
conda activate TensorFlow
# 直接命令安装最新稳定版tensorfolw,也可以指定下以前版本(GPU和CPU版本已经合并),
# GPU版本使用需要安装CUDA和cudnn,参考下前面链接
pip3 install tensorflow
# 验证安装成功,查看版本
python3 -c "import tensorflow as tf;print(tf.__version__)"
更多安装参考下 https://tensorflow.google.cn/install?hl=zh-cn 。
提示
使用pip3安装包时可能很慢,可以设置下源,使用命令 pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
3、pytorch安装
安装pytorch,可以参考下 官网,选择对应版本,系统,语言,cuda,然后查看安装命令:
没有符合要求的,也可以点击上面的安装以前的版本。下面用Conda创建虚拟环境,然后使用pip安装pytorch:
# 使用conda创建一个名为pytorch的环境,并指定python版本
conda create -n pytorch python=3.8
# 进入环境
conda activate pytorch
# 这里使用pip3安装最新版本的pytorch计算平台是gpu,你也可以查看pytorch官网,根据自己系统环境选择安装命令
pip3 install torch torchvision torchaudio
# 验证安装成功,检测版本,也可以使用conda list查看
python3 -c "import torch;print(torch.__version__)"
# 如果是安装gpu版本的,检测是否可用,正常就输出True
python3 -c "import torch;print(torch.cuda.is_available())"