参考教程:https://github.com/sophgocommunity/Duo_Doc/tree/main/TPU_SDK
依次执行以下命令即可:
//1、安装依赖
$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release
//2、apt上注册Docker的GPG密钥圈
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
//3、下载安装脚本并运行
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
等待安装结束
验证docker:sudo docker run hello-world,有如下打印说明安装成功。
方式1、2均可
1、pull,拉取时长取决于网络环境
$ docker pull sophgo/tpuc_dev:v2.2
2、导入镜像,云盘下载后导入即可
镜像下载:链接:https://pan.baidu.com/s/1298AU09H0t_w8BHZu7-REQ?pwd=cw8c
提取码:cw8c
复制到虚拟机里,导入:sudo docker load -i tpuc_dev.tar
导入后列出本地列表可以看到框选镜像:
$ sudo docker run --privileged --name milkv_tpuc_dev -v /workspace -it sophgo/tpuc_dev:v2.2
框选部分是生成的容器名,自行填写:
从ftp下载开发工具包到本地,然后拷贝到容器中:
$ sftp cvitek_mlir_2023@218.17.249.213
//ftp信息:
$ sftp://218.17.249.213
$ username: cvitek_mlir_2023
$ password: 7&2Wd%cu5k
依次执行即可,详情参照文首连接:
$ tar -zxvf tpu-mlir_v1.2.89-g77a2268f-20230703.tar.gz
$ source ./tpu-mlir_v1.2.89-g77a2268f-20230703/envsetup.sh
$ mkdir densenet121 && cd densenet121
//网络不佳可能导致densenet-12.tar.gz下载失败,可使用下方的离线附件
$ wget https://github.com/onnx/models/raw/main/vision/classification/densenet121/model/densenet-12.tar.gz
$ tar -zxvf densenet-12.tar.gz
$ cp -rf $TPUC_ROOT/regression/dataset/ILSVRC2012 .
$ cp -rf $TPUC_ROOT/regression/image .
$ mkdir work && cd work
$ model_transform.py
--model_name densenet121
--model_def ../densenet-12/densenet-12.onnx
--test_input ../image/cat.jpg
--input_shapes [[1,3,224,224]]
--resize_dims 256,256
--mean 123.675,116.28,103.53
--scale 0.0171,0.0175,0.0174
--pixel_format rgb
--test_result densenet121_top_outputs.npz
--mlir densenet121.mlir
//生成校准表,运行较慢请耐心等待完成
$ run_calibration.py densenet121.mlir
--dataset ../ILSVRC2012
--input_num 100
-o densenet121_cali_table
//编译为int8类型
$ model_deploy.py
--mlir densenet121.mlir
--quantize INT8
--calibration_table densenet121_cali_table
--chip cv180x
--test_input ../image/cat.jpg
--test_reference densenet121_top_outputs.npz
--compare_all
--fuse_preprocess
--model densenet121_cv180x_int8_fuse.cvimodel
ftp下载开发工具包cvitek_tpu_sdk_cv180x_musl_riscv64_rvv.tar.gz并解压到本地,生成cvitek_tpu_sdk文件夹:
$ sftp cvitek_mlir_2023@218.17.249.213
连接milkv:ssh root@192.168.42.1
//在开发板的终端中,新建目录
$ mkdir /root/milkv && cd /root/milkv
//在本地的终端中,将开发工具包拷贝到开发板上
$ scp -r cvitek_tpu_sdk root@192.168.42.1:/root/milkv
//在docker的终端中,将模型文件拷贝到开发板上
$ scp /workspace/densenet121/work/densenet121_cv180x_int8_fuse.cvimodel
root@192.168.42.1:/home/milkv/cvitek_tpu_sdk
***在这里可能会出现无法访问开发板的现象(如可以正常使用scp传输文件请略过),如下图,解决方案如下,在本地依次执行以下命令:
nmcli connection modify docker0 connection.zone trusted
systemctl stop NetworkManager.service
firewall-cmd --permanent --zone=trusted --change-interface=docker0
systemctl start NetworkManager.service
nmcli connection modify docker0 connection.zone trusted
systemctl restart docker.service
***然后重新进入容器传输文件到开发板
在开发板中,对以下图像进行分类:
上传到milkv的文件,设置环境变量,图像分类:
更多回帖