黑芝麻A1000-Ubuntu20.04(四)深度学习工具链bsnntool及自带案例模型转换过程

一、 宿主机安装bstnnx docker环境

(具体细节参考黑芝麻资料网站中的《深度学习工具链安装教程bsnn 4.1.0》)
登陆黑芝麻官网,下载toolchain docker 转换工具链,这里我下载的是bsnn_release_4.2.0。(该版本已集成auto_dal和auto_ptq)。

1.导入镜像

将bsnn_release_4.2.0中的所有文件下载到主目录中的toolchain文件夹中,进入终端导入image:

docker load -i ./bsnn_tools_docker_4.2.0.tar

在这里插入图片描述

2.创建容器

load成功后,创建container(有很多方法),黑芝麻推荐的是:

./run_docker_container.sh --root --keep --network=host

但是我运行会报错,所以用的是系统推荐的方法:

docker exec -it bsnn-tools-container-stk-4.2.0 /bin/bash
或者
docker exec -it bsnn-tools-container-stk-4.2.0 bash

在这里插入图片描述

3.使用jupyter

该工具编译还可以直接用jupyter,查询 jupyter 服务:

jupyter notebook list

在这里插入图片描述“ tocken=” 后的字符串为 jupyter 登录密码
打开浏览器,输入http://0.0.0.0:8370,在刷新的界面中,
输入:be2ec6aae21bc8bd9272a7a97a67a087bd52eb2c00ab6d0a
在这里插入图片描述Log in
在这里插入图片描述

4.申请license文件

给黑芝麻技术支持团队写邮件,提供Linux系统的MAC地址,申请license文件。将得到一个license.lic文件。
Linux系统的MAC地址查询: ifconfig
在这里插入图片描述我的是enp0s31f6(每个电脑略有差别),MAC地址:00:be:43:b8:40:1b

5.部署License文件

将申请到的License文件拷贝到bstnnx docker环境中,指令:docker cp ./license.lic 你container的名称:/workspace/license.lic
这里我是:

docker cp license.lic bsnn-tools-container-stk-4.2.0:/workspace/license.lic

在这里插入图片描述
修改/workspace/tools/Net-FW/utilities/script/xtensa_setup.sh文件中

export XTENSAD_LICENSE_FILE='/workspace/license.lic'

在这里插入图片描述
至此,基于toolchain docker 转换工具链bsnn_release_4.2.0的bstnnx docker环境就安装完成。
同样bsnn-tools-container-stk-4.2.0可以用VS code打开,为了方便快捷,以后我都从VS code中运行容器。(如果不知道怎么运行,请参考我关于黑芝麻A1000主题的第二篇文章)

二、自带案例模型转换

bsnn-tools-container-stk-4.2.0中内置了一个样例sample
在这里插入图片描述为了防止后续操作不当破坏了sample,所以这里我将其拷贝到其他文件夹进行转换部署。

1.拷贝

将sample拷贝到同目录下的models中
在这里插入图片描述

2.修改test1.yaml

修改sample/test1.yaml中的model_path、input_data_set_path、image_process_config路径:
在这里插入图片描述
并在priority: 1100上添加:

XTSC_NET_SIM: True
generate_rbf_only: True

在这里插入图片描述

3.转换模型

在容器中运行:

bstnnx_run --config models/sample/test1.yaml --result_dir output/hwGenTest3

在这里插入图片描述在这里插入图片描述结果:
在这里插入图片描述

cd /workspace/output/hwGenTest3/1100_HardwareTestingStage/test1_mini_model.20240905091923.hw_test_config,该文件夹是模型量化结果输出的路径。
在这里插入图片描述

其中,weights.bin及fw_integration中.lib .meta 共三个,是后期编写cmake工程和开发板端运行的重要文件。
在这里插入图片描述

4.(因为黑芝麻的深度学习系列的都是基于SDK V2.3.1.2版本进行的,建议将开发板中的SDK烧录为V2.3.1.2版本,具体参考另一篇专门写烧录的文章)

5.如果开发板烧录的SDK版本较低,是需要安装nndeploy相关组件,安装请参考另一篇。这里我烧录了V2.3.1.2版本,该版本不需要。

6.测试模型量化是否成功

/workspace/output/hwGenTest3/1100_HardwareTestingStage/test1_mini_model.20240905091923.hw_test_config该路径下有三个shell脚本:run_dsp.sh, run_dsp_lite.sh, run_perf.sh,这三个脚本是 用于 dsp baremetal 测试。(具体说明查看黑芝麻资料网站中的《深度学习工具链安装教程bsnn 4.1.0》)

USB连接宿主机和A1000

1)evb_util 文件拷贝到开发板

将docker image 内/workspace/tools/Net-FW/utilities/evb_util 文件夹复制到宿主机

docker cp bsnn-tools-container-stk-4.2.0:/workspace/tools/Net-FW/utilities/evb_util /home/stk/heizhima

bsnn-tools-container-stk-4.2.0为 docker containter name
在这里插入图片描述

再从宿主机将evb_util push 到嵌入式A1000板子上

adb push evb_util /home/root

在这里插入图片描述
登陆A1000开发板,执行

source /home/root/evb_util/env.sh

在这里插入图片描述

2).hw_test_config 文件拷贝到开发板

将1100 stage 路径下生成的 test1_mini_model.20240905091923.hw_test_config 文件夹 push 到板子。
先将其从容器中拷贝到宿主机:

docker cp bsnn-tools-container-stk-4.2.0:/workspace/output/hwGenTest3/1100_HardwareTestingStage/test1_mini_model.20240905091923.hw_test_config /home/stk/heizhima

在这里插入图片描述
再将其从宿主机拷贝到A1000:

adb push test1_mini_model.20240905091923.hw_test_config /home/root

在这里插入图片描述

3)执行run_dsp.sh

执行run_dsp.sh

cd /home/root/test1_mini_model.20240905091923.hw_test_config 
./run_dsp.sh

在这里插入图片描述在这里插入图片描述
出现

Memory dump complete
test PASS.

说明模型转化成功。

如果出现错误,查询黑芝麻资料《深度学习工具链安装教程bsnn 4.1.0》文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值