Vitis AI library中的模型在自定义单板使用

本文转载自: 硬码农二毛哥微信公众号

在Vitis AI设计中,构建模型是其中非常重要的一步。如果使用调用的模型库呢?

获取DPU Kernel

下载Vitis AI

git clone https://github.com/Xilinx/Vitis-AI.git
git checkout v1.2

修改DPU配置文件
将Vitis-AI中的DPU-TRD文件夹拷贝到工程目录中,DPU-TRD文件夹中修改dpu_conf.vh和prj_config。

将dpu_conf.vh中做如下修改:

$cd DPU-TRD/prj/Vitis/
$vim dpu_conf.vh
//`define B4096
`define B1024

修改prj_config文件:

$cd DPU-TRD/prj/Vitis/config_file
$vim prj_config
[clock]

id=0:DPUCZDX8G_1.aclk
id=1:DPUCZDX8G_1.ap_clk_2

[connectivity]

sp=DPUCZDX8G_1.M_AXI_GP0:HPC0
sp=DPUCZDX8G_1.M_AXI_HP0:HP0
sp=DPUCZDX8G_1.M_AXI_HP2:HP1

[advanced]
misc=:solution_name=link

[vivado]
prop=run.impl_1.strategy=Performance_Explore
#param=place.runPartPlacer=0

生成.xo文件

make binary_container_1/dpu.xo DEVICE=fzu3_custom

编译模型

下载模型

$cd Vitis-AI/AI-Model-Zoo
$source ./get_model.sh

下载文件all_models_1.2.zip,解压模型

$unzip all_models_1.2.zip

运行docker

$cd Vitis-AI
$./docker_run.sh xilinx/vitis-ai:1.2.82
$conda activate vitis-ai-caffe

进入Tool-Example文件夹,新建modelzoo文件夹,将system.hwh拷贝到modelzoo。

$cd Tool-Example
$mkdir modelzoo
$cd modelzoo
$cp ../system.hwh ./

生成.dcf文件

$dlet -f system.hwh

修改.json文件

将arch.json文件拷贝到modelzoo。

Caffe

创建编译脚本

新建编译输出文件夹compiled_output,新建脚本文件complie_cf_model.sh,内容如下:

model_name=$1
modelzoo_name=$2
vai_c_caffe \
--prototxt ../../AI-Model-Zoo/all_models_1.2/caffe/${modelzoo_name}/quantized/Edge/deploy.prototxt \
--caffemodel ../../AI-Model-Zoo/all_models_1.2/caffe/${modelzoo_name}/quantized/Edge/deploy.caffemodel \
--arch ./arch.json \
--output_dir ./compiled_output/${modelzoo_name} \
--net_name ${model_name} \
--options "{'mode': 'normal'}"

运行编译脚本

resnet50

source ./compile_cf_model.sh resnet50 cf_resnet50_imagenet_244_244_7.7G_1.2

densebox

source ./compile_cf_model.sh densebox cf_densebox_wider_360_640_1.11G_1.2

退出docker

Vitis编译

  • 将生成的.elf文件拷贝到vitis工程中
  • 重新编译vitis工程,生成包含网络模型的可执行文件。
  • 最新文章

    最新文章