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"
|
|||
|
}
|
|||
|
```
|