Update README.md,解决了表格显示异常的问题

This commit is contained in:
gwg_xujiao 2024-10-25 14:30:02 +08:00
parent 2e8c07d23f
commit 49175df0df
1 changed files with 58 additions and 41 deletions

View File

@ -28,6 +28,7 @@ netrans
## 1.3 支持介绍
netrans 支持的 输入模型、量化数据和输出数据类型、算子 如下表
|输入支持|描述|
|:---|---|
| caffe|支持|
@ -36,7 +37,7 @@ netrans 支持的 输入模型、量化数据和输出数据类型、算子 如
| ONNX|支持 ONNX 至 1.14.0 opset支持至19 |
| Pytorch | 支持 Pytorch 至 1.5.1 |
| Keras |支持以TensorFLow 2.0.x, 2.3.x, 2.6.x, 2.8.x, 2.10.x, 2.12.x 作为后端导出的keras模型|
| Darknet |支持Darknet官网列出 darknet 模型|
| Darknet |支持[官网](https://pjreddie.com/darknet/)列出 darknet 模型|
|数据支持|描述|
|:---|---|
@ -46,6 +47,7 @@ netrans 支持的 输入模型、量化数据和输出数据类型、算子 如
## 1.4 系统要求
运行 Netrans 的计算机应该满足以下要求。
|资源|描述|
|:---|---|
| CPU | Intel® Core™ i5-6500 CPU @ 3.2 GHz x4 支持 the Intel® Advanced Vector Extensions.|
@ -69,21 +71,21 @@ Netrans为编译好的文件只需要在系统中添加对应的路径即可
方案一:需要修改.bashrc文件增加以下行请注意路径匹配。
```shell
export NETRANS_PATH=netrans/bin
```
```shell
export NETRANS_PATH=netrans/bin
```
然后执行
```shell
source ~/.bashrc
```
```shell
source ~/.bashrc
```
方案二:在命令行中直接输入以下行,请注意路径匹配。
```shell
export NETRANS_PATH=netrans/bin
```
```shell
export NETRANS_PATH=netrans/bin
```
## 2.2 工作流程
对于float数据类型的模型工作流程如下:
@ -173,34 +175,34 @@ Netrans 支持文本文件,通过读取文本文件 dataset.txt 获取 推理
新建数据集文件“dataset.txt”里面包括推理和导出需要用到的图片数据。新建一个名为dataset.txt的文本文件在文件中指定图片路径。例如
```shell
$ cat lenet/dataset.txt
0.jpg
```
```shell
$ cat lenet/dataset.txt
0.jpg
```
### 2.3.2 工程目录准备
以上需要准备的文件,模型相关和数据相关,都需要放在同一个文件夹中,如果使用命令行工具 netrans_cli模型文件和权重文件的名字要和文件夹的名字一致且需要将目录放在目录 netrans_cli 下。
下面以 lenet 为例进行展示
```shell
$ cd pnna_sdk/netrans/netrans_cli/
$ cp -r ../../models/lenet ./
$ cd lenet
$ ls -l
total 3396
-rw-r--r-- 1 hope hope 553 Nov 5 2018 0.jpg
-rwxr--r-- 1 hope hope 6 Apr 21 17:04 dataset.txt
-rw-rw-r-- 1 hope hope 69 Apr 23 15:10 inputs_outputs.txt
-rwxr-xr-x 1 hope hope 1727201 Nov 5 2018 lenet.pb
```
```shell
$ cd pnna_sdk/netrans/netrans_cli/
$ cp -r ../../models/lenet ./
$ cd lenet
$ ls -l
total 3396
-rw-r--r-- 1 hope hope 553 Nov 5 2018 0.jpg
-rwxr--r-- 1 hope hope 6 Apr 21 17:04 dataset.txt
-rw-rw-r-- 1 hope hope 69 Apr 23 15:10 inputs_outputs.txt
-rwxr-xr-x 1 hope hope 1727201 Nov 5 2018 lenet.pb
```
# 3. netrans_cli
netrans_cli 脚本介绍
|脚本|功能|使用|
|:---|---|---|
|import_model.sh| 模型导入功能,将模型转换成 pnna 支持的格式| sh import_model.sh model_name|
@ -219,6 +221,7 @@ netrans_cli 脚本介绍
在netrans_cli目录下使用import.sh脚本进行导入
- 用法: ./import.sh 以模型文件名命名的模型数据文件夹,例如:
```shell
$ ./import.sh lenet
... ...
@ -229,6 +232,7 @@ netrans_cli 脚本介绍
SUCCESS
```
"lenet"是文件夹名也作为模型名和权重文件名。导入会打印相关日志信息成功后会打印SUCESS。导入后lenet文件夹应该有"lenet.json"和"lenet.data"文件:
```shell
$ ls -lrt lenet
total 3396
@ -243,6 +247,7 @@ netrans_cli 脚本介绍
### 3.2 生成Inputmeta文件
在netrans_cli目录下使用inputmeta_gen.sh脚本生成inputmeta文件
- 用法: ./inputmeta_gen.sh 以模型文件名命名的模型数据文件夹,例如:
```shell
$ ./inputmeta_gen.sh lenet
... ...
@ -264,6 +269,7 @@ netrans_cli 脚本介绍
可以看到,最终生成的是*.yml文件该文件用于为Netrans中间模型配置输入层数据集合。<b>Netrans中的量化、推理、导出和图片转dat的操作都需要用到这个文件。因此此步骤不可跳过。</b>
Inputmeta.yml文件结构如下
```yaml
%YAML 1.2
---
@ -313,6 +319,7 @@ Inputmeta.yml文件结构如下
shape:
- 1
- 1
```
上面示例文件的各个参数解释:
@ -398,15 +405,15 @@ Inputmeta.yml文件结构如下
- 用法:./export.sh 以模型文件名命名的模型数据文件夹 数据类型,例如:
```shell
./export.sh lenet uint8
... ...
I End exporting ovxlib case...
I ----------------Error(0),Warning(0)----------------
=======================================================================
=========== End Generate lenet ovx C code with type of asymmetric_affine ===========
=======================================================================
```
```shell
./export.sh lenet uint8
... ...
I End exporting ovxlib case...
I ----------------Error(0),Warning(0)----------------
=======================================================================
=========== End Generate lenet ovx C code with type of asymmetric_affine ===========
=======================================================================
```
导出支持的数据类型float、uint8、int8、int16其中使用uint8、int8、int16导出时需要先进行[模型量化](#33-模型量化)。导出的工程会在模型所在的目录下面的wksp目录里。
network_binary.nb文件在"asymmetric_affine"文件夹中:
@ -462,14 +469,15 @@ ntrans_py 支持以下功能:
描述: 实例化 Netrans 类。
代码示例:
```python3
import sys
sys.path.append("netrans_py")
from netrans import Netrans
yolo_netrans = Netrans("../../models/yolov4_tiny")
```
```python3
import sys
sys.path.append("netrans_py")
from netrans import Netrans
yolo_netrans = Netrans("../../models/yolov4_tiny")
```
参数
| 参数名 | 类型 | 说明 |
|:---| -- | -- |
|model_path| str| 第一位置参数,模型文件的路径|
@ -521,6 +529,7 @@ ntrans_py 支持以下功能:
```
参数:
| 参数名 | 类型 | 说明 |
|:---| -- | -- |
|quantize_type| str| 第一位置参数,模型量化类型,仅支持 "uint8", "int8", "int16"|
@ -561,6 +570,7 @@ yolo_netrans.model2nbg(quantize_type='uint8', inputmeta=True)
```
参数
| 参数名 | 类型 | 说明 |
|:---| -- | -- |
|quantize_type| str, ["uint8", "int8", "int16" ] | 量化类型,将模型量化成该参数指定的类型 |
@ -601,6 +611,7 @@ net.model2nbg(quantize_type = "int16", inputmeta=True)
# 5算子支持情况
## 5.1支持的Caffe算子
| | | |
|:---| -- | -- |
absval | innerproduct | reorg
@ -618,6 +629,7 @@ flatten | proposal | tanh
## 5.2支持的TensorFlow算子
| | | |
|:---| -- | -- |
tf.abs | tf.nn.rnn_cell_GRUCell | tf.negative
@ -654,6 +666,7 @@ tf.nn.embedding_lookup | tf.not_equal | tf.select
## 5.3支持的TFLite算子
| | | |
|:---| -- | -- |
ADD | LOGICAL_OR | RELU1
@ -683,7 +696,9 @@ GATHER | RSQRT | UNIDIRECTIONAL_SEQUEENC
GREATER | REDUCE_MAX | E_LSTM
GREATER_EQUAL | RELU | WHERE
HARD_SWISH | | |
## 5.4支持的ONNX算子
| | | |
|:---| -- | -- |
ArgMin | LeakyRelu | ReverseSequence
@ -718,6 +733,7 @@ Log | ReduceMean | |
## 5.5支持的Darknet算子
| | | |
|:---| -- | -- |
avgpool | maxpool | softmax
@ -729,6 +745,7 @@ leaky | route | yolo
logistic
## 5.6支持的Keras算子
| | | |
|:---| -- | -- |
Add | DepthwiseConv2D | GlobalMaxPooling2D