在ubuntu下将Pytorch模型部署到c++(三)(rknn模型量化)(已完结)

模型量化

  • rknn环境搭建
  • hybrid_quantization混合量化

本项目使用rknn工具进行对模型的量化,rknn提供了python下的多种api接口,可以进行模型的转换、推理运行和性能评估。

rknn环境搭建

https://github.com/rockchip-linux/rknn-toolkit 从官方github中下载rknn-toolkit
按照其doc中用户手册指导安装 以1.7.0版本为例

  1. 安装 Python3.5
sudo apt-get install python3.5
  1. 安装 pip3
sudo apt-get install python3-pip
  1. 获取 RKNN-Toolkit 安装包,然后执行以下步骤:
    a)进入 package 目录:
cd package/
    b)安装 Python 依赖
pip3 install tensorflow==1.14.0
pip3 install mxnet==1.5.0
pip3 install torch==1.5.1 torchvision==0.4.0
pip3 install gluoncv

c)安装 RKNN-Toolkit

sudo pip3 install rknn_toolkit-1.7.0-cp35-cp35m-linux_x86_64.whl

d)检查 RKNN-Toolkit 是否安装成功

*@*:~/rknn-toolkit-v1.7.0/package$ python3
>>> from rknn.api import RKNN
>>>

如果导入 RKNN 模块没有失败,说明安装成功。

References :
https://blog.csdn.net/hanpengyu/article/details/113272923

hybrid_quantization混合量化

以1.7.0版本为例,目前混合量化功能支持如下三种用法:
1.将指定的量化层改成非量化层(如用 float32 进行计算)。因 NPU 上非量化算力较低,推
理速度会有一定降低。
2. 将指定的非量化层改成量化层。
3. 修改指定量化层的量化参数。

量化流程如下图
在ubuntu下将Pytorch模型部署到c++(三)(rknn模型量化)(已完结)_第1张图片在ubuntu下将Pytorch模型部署到c++(三)(rknn模型量化)(已完结)_第2张图片官方提供的例程也较为详细/examples/common_function_demos/hybrid_quantization
以pyotorch下的MobilenetSSD为例,用本系列(二)中的方法将模型转化生成.pt文件
再使用rknn提供的api接口进行模型的加载即可进行对模型的量化,最后生成量化后的rknn文件

ret = rknn.load_pytorch(model='./ssd.pt', input_size_list=[[ 3, 300, 300]])

你可能感兴趣的:(Pytorch模型部署,ubuntu,pytorch,c++)