文章目录
0 前言
本文是深度学习模型部署框架的第三篇,更多部署框架可以查看本专栏的其他文章。
1 简介
概念:mnn是一个轻量级的深度神经网络引擎,支持深度学习的推理与训练。适用于服务器、个人电脑、手机、嵌入式各类设备。
优势:轻量性,无任何依赖;兼容性好,支持常见的框架;工具齐全,与开发者交流方便。
坑点:实践的不多,目前没发现什么坑点。
2 模型准备
2.1 导出模型为mnn格式
- 使用mnn之前要先进行编译,编译后会得到一堆的工具,其中就有模型转换工具MNNConvert,参考文档,示例如下:
# TensorFlow -> MNN
./MNNConvert -f TF --modelFile XXX.pb --MNNModel XXX.mnn --bizCode biz
# ONNX -> MNN
./MNNConvert -f ONNX --modelFile XXX.onnx --MNNModel XXX.mnn --bizCode biz
# PyTorch -> MNN,先转ONNX,再转MNN
2.2 导出时注意事项
- 在使用MNNConvert时,可以自行定义很多参数,可以根据需求设置
2.3 mnn模型检查
- 检验mnn的输出与原始模型的输出是否一致,或输出的误差是否可以容忍
3 模型优化
3.1 量化
- 使用预编译好的