RK35XX NPU开发指南

模拟环境开发

这里的模拟环境就是在PC上去模拟开发板的开发、调试,跟开发板本身没有关系。我这里的操作系统环境为Ubuntu 20.04。

首先安装Anaconda,具体操作请参考乌班图安装Pytorch、Tensorflow Cuda环境 。之后创建Python 3.8的环境。

conda create -n py38 python=3.8.0
source activate
conda activate py38

下载RK35XX开发板的NPU SDK,下载地址https://github.com/rockchip-linux/rknn-toolkit2

他这里有很多个版本,我使用的是1.5.2的。

安装相关依赖

sudo apt-get install libxslt1-dev zlib1g-dev libglib2.0 libsm6 libgl1-mesa-glx libprotobuf-dev gcc

 安装Python组件

cd RK_NPU_SDK/RK_NPU_SDK_1.5.2/release
unzip rknn-toolkit2-1.5.2.zip
cd rknn-toolkit2-1.5.2/doc
pip install -r requirements_cp38-1.5.2.txt -i https://mirror.baidu.com/pypi/simple

安装NUP SDK Python组件

cd ../packages
pip install rknn_toolkit2-1.5.2+b642f30c-cp38-cp38-linux_x86_64.whl

安装PyCharm。

HelloWorld

这里我们将一个Pytorch的模型参数转化为RKNN的专用模型。首先将examples/pytorch/resnet18下面的dataset.txt以及space_shuttle_224.jpg拷贝到PyCharm项目下。

拉取模型参数

import torch
from torchvision import models

if __name__ == '__main__':
    
    net = models.resnet18(pretrained=True)
    net.eval()
    trace_model = torch.jit.trace(net, torch.Tensor(1, 3, 224, 224))
    trace_model.save('./resnet18.pt')

转化

from rknn.api import RKNN

if __name__ == '__main__':

    rknn = RKNN(verbose=True, verbose_file='log.txt')

    rknn.config(
        mean_values=[[123.675, 116.28, 103.53]],
        std_values=[[58.395, 58.395, 58.395]],
        target_platform='rk3568'
    )

    rknn.load_pytorch(model='./resnet18.pt', input_size_list=[[1, 3, 224, 224]])
    rknn.build(do_quantization=True, dataset='dataset.txt', rknn_batch_size=1)
    rknn.export_rknn('resnet18.rknn')

    rknn.release()

运行结果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章