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()

運行結果

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