Skip to content

Commit

Permalink
update AI deploy and AX-Pi usage
Browse files Browse the repository at this point in the history
  • Loading branch information
Neutree committed Sep 26, 2022
1 parent 98b3a5e commit 57c3ff5
Show file tree
Hide file tree
Showing 9 changed files with 246 additions and 14 deletions.
21 changes: 21 additions & 0 deletions docs/hardware/zh/maixIII/ax620a/ai.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: 是在 Maix-III(M3) 系列 AX-Pi 开发板上运行 AI 模型和部署模型到 AX-Pi
---


## 使用现成的模型

[MaixHub 模型库](https://maixhub.com/model/zoo) 找到你需要的模型,可以在过滤选项中选择`AX-Pi 平台`来查找能在`AX-Pi`上运行的模型。
然后下载并拷贝到开发板使用,模型详情页面会介绍如何使用模型。

## 将你的模型转换为在 AX-Pi 上可以使用的模型

使用模型训练框架(比如 Pytorch)训练好模型后,要在 `AX-Pi` 上运行,还需要将模型量化为`INT8`模型,以及转换成`AX-Pi`支持的模型格式。
同时,也要注意`AX-Pi`的算子支持情况,在设计模型结构时就需要考虑到;
另外,有些模型可能需要将后处理从模型中分离出来,在`AX-Pi`上单独使用代码实现后处理。
详细的模型部署方法见[部署模型到 Maix-III(M3) 系列 AX-Pi 开发板](/ai/zh/deploy/ax-pi.html)

## 分享有趣的模型

部署成功后会有一份模型文件,以及一份能运行模型的代码,可以将这些文件分享到 [MaixHub 模型库](https://maixhub.com/model/zoo) ,大家一起交流学习!

35 changes: 35 additions & 0 deletions docs/hardware/zh/maixIII/ax620a/sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: Maix-III 系列 AX-Pi 开发板 SDK 使用介绍
---

## SDK 和源码下载

SDK 源码在 [libmaix](https://github.com/sipeed/libmaix), 点击页面`Code` -> `Download ZIP` 下载, 或者使用 git 命令下载:

```bash
git clone https://github.com/sipeed/libmaix.git
```

另外, AI 模型及例程在 [MaixHub 模型库](https://maixhub.com/model/zoo) 可以找到, 以及 [AXERA-TECH/ax-samples](https://github.com/AXERA-TECH/ax-samples) 仓库。


## 编译 SDK

对于 `libmaix`, 按照其`README.md` 文件描述的方法编译即可, 不过需要在`menuconfig`命令中选择 `AX-Pi` 作为编译目标。

这里简要介绍一下编译过程:

TODO:

## 组合 SDK 和 AI 模型例程

比如我们要跑一个视觉 AI 模型,需要用到摄像头,屏幕,还有 AI 模型。
其中 摄像头和屏幕的使用在`libmaix`中已经有例程,可以直接使用,基于摄像头屏幕使用例程,将 AI 模型的例程拷贝到例程目录中,调整一下 API 调用即可。

举例:

TODO:




8 changes: 8 additions & 0 deletions docs/hardware/zh/sidebar.json
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,14 @@
{
"label": "基础使用",
"file": "maixIII/ax620a/usages.md"
},
{
"label": "SDK 使用",
"file": "maixIII/ax620a/sdk.md"
},
{
"label": "AI 模型相关",
"file": "maixIII/ax620a/ai.md"
}
]
}
Expand Down
6 changes: 3 additions & 3 deletions docs/soft/ai/zh/deploy/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: 部署模型到边缘设备方法汇总
title: 制作可部署到边缘设备的模型和部署方法汇总
keywords: 模型部署, 模型转换, 模型部署边缘设备
desc: 汇总如何部署模型到边缘设备的相关文档,边缘设备包含单片机、SBC、SOC、NPU等。
date: 2022-09-21
date: false
class: heading_no_counter
---

Expand Down Expand Up @@ -54,7 +54,7 @@ class: heading_no_counter
<h2>Maix-III 系列 AX-Pi</h2>
<div class="brief">
<div>高算力、独特 AI-ISP 影像系统</div>
<div>最高 3.6Tops@INT8,算子支持较多</div>
<div>最高 3.6Tops@INT8,丰富算子支持</div>
</div>
</div>
</div>
Expand Down
82 changes: 72 additions & 10 deletions docs/soft/ai/zh/deploy/ax-pi.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,47 @@ title: 部署模型到 Maix-III(M3) 系列 AX-Pi 开发板
date: 2022-09-21
---

<div id="title_card">
<div class="card" style="background-color: #fafbfe">
<img src="../../assets/maix-iii-small.png" alt="AX-Pi 模型转换和部署">
<div class="card_info card_purple">
<div class="title">Maix-III 系列之 AX-Pi(爱芯派)</div>
<div class="brief">
<div>高算力、独特 AI-ISP 影像系统</div>
<div>最高 3.6Tops@INT8,丰富算子支持</div>
</div>
</div>
</div>
</div>
<style>
#title_card {
width:100%;
text-align:center;
background-color: #fafbfe;
margin-bottom: 1em;
}
#title_card img {
max-height: 20em;
}
.card_purple {
background-color: #d1c4e9;
color: #673ab7;
}
.dark .card_purple {
background-color: #370040;
color: #ffffffba;
}
.title {
font-size: 1.5em;
font-weight: 800;
}
</style>

> 有任何想法或者修改建议,欢迎留言或者直接点击右上角`编辑本页`进行修改后提交 PR
> [MaixHub](https://maixhub.com/model/zoo) 模型库有 AX-Pi 能直接运行的模型,可以直接下载使用,也欢迎上传分享你的模型~
要部署模型到 Maix-III(M3) 系列 AX-Pi 开发板,需要将模型量化到 INT8,减小模型大小的同时提高运行速度,一般采用 `PTQ`(训练后量化)的方式量化模型,步骤:
要部署模型到 [Maix-III(M3) 系列 AX-Pi 开发板](/hardware/zh/maixIII/index.html),需要将模型量化到 INT8,减小模型大小的同时提高运行速度,一般采用 `PTQ`(训练后量化)的方式量化模型,步骤:
* 准备好浮点模型。
* 用模型量化和格式转换工具转换成 AX-Pi 支持的格式,这里工具使用爱芯官方提供的 [superpulsar](https://superpulsar-docs.readthedocs.io)
* 在 AX-Pi 上运行模型。
Expand All @@ -22,20 +58,46 @@ date: 2022-09-21

## 模型量化和格式转换

* 安装`docker`[安装教程](https://docs.docker.com/engine/install/)
### 安装`docker`

[安装教程](https://docs.docker.com/engine/install/)

安装好后查看
```
docker --version
```

`Linux`下添加当前用户到 `docker`组,这样就不需要使用 `sudo` 运行`docker`命令了。可以用以下命令来添加:
```shell
sudo gpasswd -a $USER docker
newgrp docker
```

### 下载转换工具

* 下载转换工具, 转换工具是以 docker 镜像的方式提供的,下载后用 docker 加载镜像即可。
转换工具是以 docker 镜像的方式提供的,下载后用 docker 加载镜像即可。
直接使用 `docker`命令下载镜像或者先下载镜像文件解压成 `tar` 文件,再加载镜像:

| 下载站点 | 下载链接 | 使用方法 |
| 下载站点 | 简介 | 使用方法 |
| :--- | :--- | :--- |
| dockerhub | 执行命令在线下载 | `docker pull sipeed/superpulsar:latest` |
| daocloud | 国内推荐 | `docker pull daocloud.io/sipeed/superpulsar:latest` |
| 迅雷云盘 | TODO: | 解压出 `tar`,再 `docker load -i superpulsar.tar` |
| 百度云盘 | TODO: | 解压出 `tar`,再 `docker load -i superpulsar.tar` |
| dl.sipeed.com | TODO: | 解压出 `tar`,再 `docker load -i superpulsar.tar` |
| [dockerhub](https://hub.docker.com/r/sipeed/superpulsar/tags) | 执行命令即可在线下载 | `docker pull sipeed/superpulsar` |
| dockerhub 国内镜像 | 中国国内下载加速 | 1. 编辑`/etc/docker/daemon.json`添加`"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],`(也可以用其它镜像比如[阿里云](https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors))<br>2. `docker pull daocloud.io/sipeed/superpulsar:latest` |

> 注意这里镜像名叫 `sipeed/superpulsar`, 在文档里面有些地方可能是 `axera/neuwizard`,是等效的,只是名字不同
然后创建容器:
```shell
docker run -it --net host --rm --shm-size 32g -v $PWD:/data sipeed/superpulsar
```
> * 这里`--shm-size`共享内run大小根据你的电脑内存大小设置。
> * 不用`--rm`会保留容器,建议加个`-name xxx`来命名容器,下次通过`docker start xxx && docker attach xxx`进入容器
> * `-v 宿主机路径:/data`是把宿主机的目录挂载到容器的`/data`目录,这样就可以在容器里面直接操作宿主机的文件了。
创建容器后会自动进入容器,使用`pulsar -h`命令可以看到相关命令。

### 进行模型量化和转换

* 然后看 [superpulsar](https://superpulsar-docs.readthedocs.io) 文档中的转换命令以及配置文件方法进行模型量化和格式转换。
然后看 [superpulsar](https://superpulsar-docs.readthedocs.io) 文档中的转换命令以及配置文件方法进行模型量化和格式转换。
> 注意 `AX-Pi` 使用了虚拟 NPU 的概念来划分算力,以将实现全部算力给 NPU 或者 NPU 和 AI-ISP 各分一半。
## 在 AX-Pi 上运行模型
Expand Down
35 changes: 35 additions & 0 deletions docs/soft/ai/zh/deploy/k210.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,41 @@ title: 部署模型到 Maix-I(M1) K210 系列开发板
date: 2022-09-15
---

<div id="title_card">
<div class="card">
<img src="/hardware/zh/maix/assets/dk_board/maix_duino/maixduino_0.png" alt="K210 模型转换和部署">
<div class="card_info card_red">
<div class="title">Maix-I 系列 K210</div>
<div class="brief">
<div>高性价比带硬件 AI 加速的单片机</div>
<div>1Tops@INT8,有限算子加速</div>
</div>
</div>
</div>
</div>
<style>
#title_card {
width:100%;
text-align:center;
margin-bottom: 1em;
}
#title_card img {
max-height: 20em;
}
.card_red {
background-color: #ffcdd2;
color: #cf4f5a;
}
.dark .card_red {
background-color: #5a0000;
color: #ffffffba;
}
.title {
font-size: 1.5em;
font-weight: 800;
}
</style>

> 欢迎修改和补充
一般使用 `tensorflow` 训练出浮点模型, 再使用转换工具将其转换成 `K210` 所支持的 `Kmodel` 模型,然后将模型部署到 `K210` 开发板上。
Expand Down
36 changes: 36 additions & 0 deletions docs/soft/ai/zh/deploy/tinymaix.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,42 @@ title: 使用 TinyMaix 将模型部署到单片机
date: 2022-09-15
---

<div id="title_card">
<div class="card" style="background-color: #fafbfe">
<img src="../../assets/m0_small.png" alt="TinyMaix 模型转换和部署">
<div class="card_info card_green">
<div class="title">TinyMaix 平台</div>
<div class="brief">
<div>单片机通用,为各种指令集优化</div>
<div>算力具体看硬件 CPU,有限算子加速</div>
</div>
</div>
</div>
</div>
<style>
#title_card {
width:100%;
text-align:center;
background-color: #fafbfe;
margin-bottom: 1em;
}
#title_card img {
max-height: 20em;
}
.card_green {
background-color: #b2dfdb;
color: #009688;
}
.dark .card_green {
background-color: #004e03;
color: #ffffffba;
}
.title {
font-size: 1.5em;
font-weight: 800;
}
</style>

[TinyMaix](https://github.com/sipeed/TinyMaix) 是针对小算力小内存的芯片设计的轻量级推理框架,甚至能在`2KB`内存的`Arduino ATmega328`单片机上运行`MNIST`,对各种架构的单片机都提供了支持和优化,包括 RISC-V、ARM Cortex-M 等。


Expand Down
35 changes: 35 additions & 0 deletions docs/soft/ai/zh/deploy/v831.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,41 @@ title: 将模型部署到 V831
date: 2022-09-15
---

<div id="title_card">
<div class="card">
<img src="/hardware/assets/maixII/m2dock.jpg" alt="V831 模型转换和部署">
<div class="card_info card_blue">
<div class="title">Maix-II 系列 v831</div>
<div class="brief">
<div>高性价比带硬件 AI 加速,支持 Linux</div>
<div>0.2Tops@INT8,有限算子加速</div>
</div>
</div>
</div>
</div>
<style>
#title_card {
width:100%;
text-align:center;
background-color: white;
margin-bottom: 1em;
}
#title_card img {
max-height: 20em;
}
.card_blue {
background-color: #90caf9;
color: #105aa9;
}
.dark .card_blue {
background-color: #003c6c;
color: #ffffffba;
}
.title {
font-size: 1.5em;
font-weight: 800;
}
</style>


## 制作浮点模型
Expand Down
2 changes: 1 addition & 1 deletion news/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ title: 动态
keywords: teedoc, 博客生成, 静态博客
desc: teedoc 静态博客页面生成
show_source: false
date: true
date: false

---

0 comments on commit 57c3ff5

Please sign in to comment.