技术专栏
MNN使用1-基本用法
编译好之后的MNN工具都在build目录下面。
1 模型转换
动态输入大小的interpreter代码编写,见https://www.yuque.com/mnn/cn/input
cd到build,执行
./MNNConvert -f TF --modelFile ../resource/model/ocr-STR.pb --MNNModel ../resource/model/ocr-STR.mnn --bizCode MNN
- 模型转化的速度非常非常快,10ms左右估计;
- 模型转换完成后,会出现Inputs和Outputs节点名称,注意该名称与转换前的tensorflow或者pytorch的节点名称不一样;
- 模型转换支持非固定尺寸的输入。如果需要指定尺寸,对于TensorFlow,则需要在freeze成pb模型的时候就指定尺寸,即需修改freeze函数中tf.placeholder的img_holder为固定尺寸而非None;
2 模型量化(离线量化)
文档:https://www.yuque.com/mnn/cn/tool_quantize
- 转换为量化模型时必须固定输入尺寸,所以离线量化模型不能够非固定尺寸输入进行推理
- 如下图所示,需要修改mean、normal、width、height,用于量化评估的测试图片(官方推荐100-1000张)
# 模型量化
./quantized.out ../resource/model/ocr/STD/STD.mnn ../resource/model/ocr/STD/quant-STD.mnn /Volumes/学习/programs/MNN-0.2.2.2/tools/quantization/preprocessConfig.json
3 速度测试
timeProfile.out工具可进行模型Op总耗时统计和模型运算量估计
- 对于固定输入尺寸的模型,使用下述命令时可不指定尺寸
cd到build,执行
# timeProfile.out除了可以查看模型性能瓶颈,还可以通过timeProfile.out运行是否成功来判断模型的输入数据格式顺序(nchw还是nhwc),caffe转换后的mnn模型好像是nhwc
./timeProfile.out ../resource/model/mobilenetV2.mnn 10 0 1x3x88×352
# 对于nhwc格式的数据
./timeProfile.out ../resource/model/mobilenet_v2.caffe.mnn 10 0 1x88×352x3
4 MNN模型转换前后的inference结果对比
运行原模型:
- 修改test4TF.py中输入的维度,pb模型的路径,输入和输出tensor的名称
- 运行完后,即可输出Python调用tensorflow模型的output结果,并保存在当前文件夹下的TF_result.txt中
# cd到tools/converter/tools
python test4TF.py
运行MNN转换后的模型:
- 生成MNN转换后的模型输出,并保存在当前文件夹下的output.txt中,可用于与python test4TF.py的输出进行比对(但MNNV2Basic.out 仅支持单输入单输出模型)
- 同时MNNV2Basic.out 可以将每个op的操作时间都打印出来
# cd到build
./MNNV2Basic.out ../benchmark/models/MNN_model/ocr_recognize_1178500_noUpsample.pb.mnn 10 1 0 1x3x128x512
5 查看模型节点信息
cd到tools/converter/build文件夹下,执行
./MNNDump2Json.out ../tools/ocr_STR.mnn test.json
即可生成权重、节点的信息,保存在json文件中。
注意:运行模型时若出现The mobilenetv2/conv1_1/conv1_1/conv2d/Conv2D’s input is not ready Resize error for mobilenetv2/conv1_1/conv1_1/conv2d/Conv2D, code=3,注意这个不是错误,这个是因为在model file中没有定义input dimensions。
6 MNN的pc端测试自己的模型
pc的demo在exec文件夹中
# [1]修改CMkeLists.txt的内容并生成test_ocr.out
cmake ..
make
# [2]执行test_ocr.out得到网络运行结果
./test_ocr.out ../benchmark/models/MNN_model/ocr_STR.mnn ../demo/exec/images/test.jpg ../demo/exec/pose.png
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
1
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:3811次2020-10-26 11:47:36
-
浏览量:568次2023-09-07 18:04:43
-
浏览量:12294次2020-12-02 22:49:48
-
浏览量:4928次2020-09-20 21:47:25
-
浏览量:9110次2020-08-18 21:11:17
-
浏览量:15582次2020-12-02 22:47:42
-
浏览量:1883次2020-08-12 09:36:09
-
浏览量:3605次2020-08-18 15:39:19
-
浏览量:973次2024-01-17 11:25:11
-
浏览量:639次2023-08-24 17:10:19
-
浏览量:3317次2020-07-29 11:56:51
-
浏览量:34398次2021-06-28 08:13:24
-
浏览量:2473次2020-08-25 18:07:51
-
浏览量:532次2023-09-04 14:17:53
-
浏览量:11046次2021-07-23 15:56:25
-
浏览量:2668次2020-08-11 10:41:17
-
浏览量:1997次2020-08-10 19:45:11
-
浏览量:4506次2020-07-30 10:26:53
-
浏览量:3242次2020-08-14 18:37:03
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
Debug
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注