guía de conversión de modelo mnn

1: Descargar MNN oficial

clon de git https://github.com/alibaba/MNN.git

2: Instalar protobuf:

https://github.com/protocolbuffers/protobuf.git

brew install protobuf

3: compilar MNNConvert

cd MNN
mkdir buildcd build
cmake .. -DMNN_BUILD_CONVERTER=true
make

(Una vez completada la compilación, hay un archivo MNNConvert en el directorio de compilación, que se utiliza para convertir diferentes modelos al formato MNN, incluida la conversión de float32 a float16)
Insertar descripción de la imagen aquí

4: conversión de modelo

Descripción de parámetros:

Usage:
  MNNConvert [OPTION...]

  -h, --help                    Convert Other Model Format To MNN Model

  -v, --version                 显示当前转换器版本
  
  -f, --framework arg           需要进行转换的模型类型, ex: [TF,CAFFE,ONNX,TFLITE,MNN,TORCH, JSON]
  
      --modelFile arg           需要进行转换的模型文件名, ex: *.pb,*caffemodel
      
      --prototxt arg            caffe模型结构描述文件, ex: *.prototxt
      
      --MNNModel arg            转换之后保存的MNN模型文件名, ex: *.mnn
      
      --fp16                    将conv/matmul/LSTM的float32参数保存为float16,
      													模型将减小一半,精度基本无损
      
      --benchmarkModel          不保存模型中conv/matmul/BN等层的参数,仅用于benchmark测试
      
      --bizCode arg             MNN模型Flag, ex: MNN
      
      --debug                   使用debug模型显示更多转换信息
      
      --forTraining             保存训练相关算子,如BN/Dropout,default: false
      
      --weightQuantBits arg     arg=2~8,此功能仅对conv/matmul/LSTM的float32权值进行量化,
      													仅优化模型大小,加载模型后会解码为float32,量化位宽可选2~8,
                                运行速度和float32模型一致。8bit时精度基本无损,模型大小减小4倍
                                default: 0,即不进行权值量化
      
      --compressionParamsFile arg
                                使用MNN模型压缩工具箱生成的模型压缩信息文件
                                
      --saveStaticModel         固定输入形状,保存静态模型, default: false
      
      --inputConfigFile arg     保存静态模型所需要的配置文件, ex: ~/config.txt。文件格式为:
                                input_names = input0,input1
                                input_dims = 1x3x224x224,1x3x64x64
      --JsonFile arg            当-f MNN并指定JsonFile时,可以将MNN模型转换为Json文件
      --info                    当-f MNN时,打印模型基本信息(输入名、输入形状、输出名、模型版本等)
      --testdir arg             测试转换 MNN 之后,MNN推理结果是否与原始模型一致。
                                arg 为测试数据的文件夹,生成方式参考 "正确性校验" 一节
      --thredhold arg           当启用 --testdir 后,设置正确性校验的误差允可范围
                                若不设置,默认是 0.01
      --saveExternalData        将权重,常量等数据存储在额外文件中,默认为`false`

Por ejemplo: tflite->mnn

./MNNConvert -f TFLITE --modelFile hand_class_f32_normal_v1.tflite --MNNModel hand_class_f32_normal_v1.mnn --bizCode biz

Insertar descripción de la imagen aquí
Si desea guardar float16 MNN, utilice el siguiente comando:

./MNNConvert -f TFLITE --modelFile hand_class_f32_normal_v1.tflite --MNNModel hand_class_f16_normal_v1.mnn --fp16 --bizCode biz

Supongo que te gusta

Origin blog.csdn.net/jiafeier_555/article/details/128925541
Recomendado
Clasificación