mirror of https://github.com/alibaba/MNN.git
75 lines
2.3 KiB
Markdown
75 lines
2.3 KiB
Markdown
# Python工具
|
||
Pymnn是MNN的Python版本,其中将部分MNN工具封装成了`MNNTools`,MNNTools模块主要有以下工具:
|
||
- mnn
|
||
- mnnconvert
|
||
- mnnquant
|
||
|
||
### mnn
|
||
mnn工具的功能是列出目前MNNTools支持的所有工具,使用如下:
|
||
```bash
|
||
mnn
|
||
mnn toolsets has following command line tools
|
||
$mnn
|
||
list out mnn commands
|
||
$mnnconvert
|
||
convert other model to mnn model
|
||
$mnnquant
|
||
quantize mnn model
|
||
```
|
||
### mnnconvert
|
||
mnnconvert是对[MNNConvert](convert.md)的Python封装,参数使用可以[参考](convert.html#id2),示例如下:
|
||
```bash
|
||
mnnconvert -f ONNX --modelFile mobilenetv2-7.onnx --MNNModel mobilenetv2-7.mnn --bizCode mobilenet
|
||
Start to Convert Other Model Format To MNN Model...
|
||
[11:34:53] :40: ONNX Model ir version: 6
|
||
Start to Optimize the MNN Net...
|
||
107 op name is empty or dup, set to Const107
|
||
108 op name is empty or dup, set to BinaryOp108
|
||
109 op name is empty or dup, set to Unsqueeze109
|
||
111 op name is empty or dup, set to Unsqueeze111
|
||
inputTensors : [ input, ]
|
||
outputTensors: [ output, ]
|
||
Converted Success!
|
||
```
|
||
### mnnquant
|
||
mnnquant是对[quantized.out](quant.html#id4)的Python封装,具体用法可以参考[quantized.out](quant.html#id4),示例如下:
|
||
```bash
|
||
cp /path/to/MNN # using MNN/resource/images as input
|
||
mnnquant shuffle.mnn shuffle_quant.mnn shuffle_quant.json
|
||
[11:48:17] :48: >>> modelFile: shuffle.mnn
|
||
[11:48:17] :49: >>> preTreatConfig: shuffle_quant.json
|
||
[11:48:17] :50: >>> dstFile: shuffle_quant.mnn
|
||
[11:48:17] :77: Calibrate the feature and quantize model...
|
||
[11:48:17] :156: Use feature quantization method: KL
|
||
[11:48:17] :157: Use weight quantization method: MAX_ABS
|
||
[11:48:17] :177: feature_clamp_value: 127
|
||
[11:48:17] :178: weight_clamp_value: 127
|
||
[11:48:17] :111: used image num: 2
|
||
[11:48:17] :668: fake quant weights done.
|
||
ComputeFeatureRange: 100.00 %
|
||
CollectFeatureDistribution: 100.00 %
|
||
[11:48:36] :82: Quantize model done!
|
||
```
|
||
配置文件`shuffle_quant.json`内容如下:
|
||
```json
|
||
{
|
||
"format":"RGB",
|
||
"mean":[
|
||
103.94,
|
||
116.78,
|
||
123.68
|
||
],
|
||
"normal":[
|
||
0.017,
|
||
0.017,
|
||
0.017
|
||
],
|
||
"width":224,
|
||
"height":224,
|
||
"path":"./resource/images/",
|
||
"used_image_num":2,
|
||
"feature_quantize_method":"KL",
|
||
"weight_quantize_method":"MAX_ABS",
|
||
"model":"shuffle.mnn"
|
||
}
|
||
``` |