update netrans_py
This commit is contained in:
parent
f7b0552329
commit
f47488f5b3
|
@ -243,11 +243,11 @@ netrans_cli 脚本介绍
|
|||
### 3.2 生成Inputmeta文件
|
||||
在netrans_cli目录下使用inputmeta_gen.sh脚本生成inputmeta文件:
|
||||
- 用法: ./inputmeta_gen.sh 以模型文件名命名的模型数据文件夹,例如:
|
||||
```shell
|
||||
$ ./inputmeta_gen.sh lenet
|
||||
... ...
|
||||
I Namespace(generate='inputmeta', input_meta_output=None, model='lenet.json', separated_database=True, which='generate')
|
||||
I Load model in lenet.json
|
||||
```shell
|
||||
$ ./inputmeta_gen.sh lenet
|
||||
... ...
|
||||
I Namespace(generate='inputmeta', input_meta_output=None, model='lenet.json', separated_database=True, which='generate')
|
||||
I Load model in lenet.json
|
||||
I Generate input meta lenet_inputmeta.yml
|
||||
I ----------------Error(0),Warning(0)----------------
|
||||
|
||||
|
@ -260,6 +260,8 @@ total 3400
|
|||
-rw-r--r-- 1 hope hope 5553 Jun 7 09:21 lenet.json
|
||||
-rw-r--r-- 1 hope hope 1725178 Jun 7 09:21 lenet.data
|
||||
-rw-r--r-- 1 hope hope 948 Jun 7 09:35 lenet_inputmeta.yml
|
||||
```
|
||||
|
||||
```
|
||||
可以看到,最终生成的是*.yml文件,该文件用于为Netrans中间模型配置输入层数据集合。<b>Netrans中的量化、推理、导出和图片转dat的操作都需要用到这个文件。因此,此步骤不可跳过。</b>
|
||||
|
||||
|
@ -447,13 +449,13 @@ ls -lrt lenet/wksp/asymmetric_affine/
|
|||
|
||||
请参照quick_start.md。
|
||||
# 4 netrans_py
|
||||
netrans_cli 脚本介绍
|
||||
netrans_py 脚本介绍
|
||||
|脚本|功能|使用|
|
||||
|:---|---|---|
|
||||
|import_model.py| 模型导入功能,将模型转换成 pnna 支持的格式| python import_model.py model_name|
|
||||
|inputmeta_gen.py| 预处理模版生成功能,生成预处理模版,根据模型进行对于的修改| python inputmeta_gen.py model_name|
|
||||
|quantize.py| 量化功能, 对模型进行量化生成量化参数文件| python quantize.sh model_name quantize_data_type|
|
||||
|quantize_hb.py| 混合量化功能, 对模型进行量化生成量化参数文件| python quantize.py model_name quantize_data_type|
|
||||
|quantize.py| 量化功能, 对模型进行量化生成量化参数文件| python quantize.py model_name quantize_data_type|
|
||||
|quantize_hb.py| 混合量化功能, 对模型进行混合量化生成量化参数文件| python quantize_hb.py model_name quantize_data_type|
|
||||
|infer.py| 推理保存输出的功能,对模型进行推理|python infer.py model_name quantize_data_type<br/>注意:该功能可用于测试模型精度,和开发板上推理结果大体一致|
|
||||
|dump.py| 推理保存每一层结果的功能,对模型进行推理|python dump.py model_name quantize_data_type<br/>注意:该功能可用于测试模型精度,和开发板上推理结果大体一致|
|
||||
|export.py|导出功能,将量化好的模型导出成 pnna 上可以运行的runtime| python export.py model_name quantize_data_type|
|
||||
|
@ -466,7 +468,7 @@ netrans_cli 脚本介绍
|
|||
### 4.1 导入模型
|
||||
|
||||
在netrans_py目录下使用import_model.py脚本进行导入
|
||||
- 用法1:import_model.py 以模型文件名命名的模型数据文件夹,例如:
|
||||
- 用法1:python import_model.py 以模型文件名命名的模型数据文件夹,例如:
|
||||
```shell
|
||||
$ python import_model.py lenet
|
||||
```
|
||||
|
@ -479,10 +481,10 @@ netrans_cli 脚本介绍
|
|||
|
||||
|
||||
### 4.2 生成Inputmeta文件
|
||||
在netrans_py目录下使用inputmeta_gen.sh脚本生成inputmeta文件:
|
||||
- 用法: ./inputmeta_gen.sh 以模型文件名命名的模型数据文件夹,例如:
|
||||
在netrans_py目录下使用inputmeta_gen.py脚本生成inputmeta文件:
|
||||
- 用法: python inputmeta_gen.py 以模型文件名命名的模型数据文件夹,例如:
|
||||
```shell
|
||||
$ python inputmeta_gen.sh lenet
|
||||
$ python inputmeta_gen.py lenet
|
||||
```
|
||||
可以看到,最终生成的是*.yml文件,该文件用于为Netrans中间模型配置输入层数据集合。<b>Netrans中的量化、推理、导出和图片转dat的操作都需要用到这个文件。因此,此步骤不可跳过。</b>
|
||||
|
||||
|
@ -569,20 +571,20 @@ input_meta:
|
|||
可以根据实际情况对生成的inputmeta文件进行修改。
|
||||
|
||||
### 4.3 模型量化
|
||||
如果我们训练好的模型的数据类型是float32的,为了使模型以更高的效率在pnna上运行,我们可以对模型进行量化操作,量化操作可能会带来一定程度的精度损失。<
|
||||
如果我们训练好的模型的数据类型是float32的,为了使模型以更高的效率在pnna上运行,我们可以对模型进行量化操作,量化操作可能会带来一定程度的精度损失。
|
||||
在netrans_py目录下使用quantize.py脚本进行量化操作。
|
||||
|
||||
用法1:python quantize.sh 以模型文件名命名的模型数据文件夹 量化类型,例如:
|
||||
用法1:python quantize.py 以模型文件名命名的模型数据文件夹 量化类型,例如:
|
||||
|
||||
```shell
|
||||
$ python quantize.sh lenet uint8
|
||||
$ python quantize.py lenet uint8
|
||||
```
|
||||
|
||||
支持的量化类型有:uint8、int8、int16
|
||||
|
||||
用法2:先执行python quantize.sh 以模型文件名命名的模型数据文件夹 量化类型;
|
||||
用法2-混合量化:先执行python quantize.py 以模型文件名命名的模型数据文件夹 量化类型;
|
||||
```shell
|
||||
$ python quantize.sh lenet uint8
|
||||
$ python quantize.py lenet uint8
|
||||
```
|
||||
uint8执行成功会生成lenet_asymmetric_affine.quantize.打开.quantize文件,
|
||||
在最后一行加入需要混合量化的节点名字和类型,如下所示:
|
||||
|
@ -591,22 +593,22 @@ $ customized_quantize_layers:
|
|||
stage1/rebnconvin/conv_s1/Conv_output_0_39: dynamic_fixed_point-i16
|
||||
input.1_378: dynamic_fixed_point-i16
|
||||
```
|
||||
最后执行python quantize_hb.sh 以模型文件名命名的模型数据文件夹 量化类型, 例如:
|
||||
最后执行python quantize_hb.py 以模型文件名命名的模型数据文件夹 量化类型, 例如:
|
||||
|
||||
```shell
|
||||
$ python quantize_hb.sh lenet uint8
|
||||
$ python quantize_hb.py lenet uint8
|
||||
```
|
||||
|
||||
混合量化支持的量化类型有:uint8
|
||||
混合量化支持的量化类型有:uint8,混合量化能提高uint8的模型精度,减少量化损失。
|
||||
### 4.4 模型推理
|
||||
|
||||
在netrans_py目录下使用infer.py、dump.py脚本进行推理
|
||||
|
||||
- 用法1:python infer.sh 以模型文件名命名的模型数据文件夹 数据类型,推理成功则会在inf目录下生成输入、
|
||||
- 用法1:python infer.py 以模型文件名命名的模型数据文件夹 数据类型,推理成功则会在inf目录下生成输入、
|
||||
输出的.tensor文件,例如:
|
||||
|
||||
```shell
|
||||
$ python infer.sh lenet uint8
|
||||
$ python infer.py lenet uint8
|
||||
```
|
||||
- 用法2:python dump.py 以模型文件名命名的模型数据文件夹 数据类型,推理成功则会在inf目录下生成输入、
|
||||
每层的输出的.tensor文件,例如:
|
||||
|
@ -618,7 +620,7 @@ $ python quantize_hb.sh lenet uint8
|
|||
|
||||
### 4.5 模型导出
|
||||
|
||||
在netrans_py目录下使用export.sh脚本进行推理。
|
||||
在netrans_py目录下使用export.py脚本进行推理。
|
||||
|
||||
用法1:python export.py 以模型文件名命名的模型数据文件夹 数据类型,例如:
|
||||
```shell
|
||||
|
|
Loading…
Reference in New Issue