Update README.md,解决了表格显示异常的问题
This commit is contained in:
parent
2e8c07d23f
commit
49175df0df
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue