早餐|第十七期 · 模型优化器对模型做了哪些优化

早餐|第十七期 · 模型优化器对模型做了哪些优化

爱学习的 OpenVINO 中文社区

内 容 来 源 | 曹 慧 燕
排 版 | 卢 书 晴
视 频 BGM | *music by audionautix.com

早餐|第十七期 · 模型优化器对模型做了哪些优化
各位下伙伴们,早上好呀~
这里是 OpenVINO 早餐。

我们说在使用 OpenVINO 之前,
需要先使用模型优化器对模型进行优化。
很多小伙伴有疑问,
模型优化器对模型到底做了哪些优化?

其实这个问题的答案在开发文档中就可以找到。
今天曹老师就带大家一起来解开这个迷惑。

作者介绍

○ 曹慧燕

英特尔
IOTG Edge
AI 工程师

正餐部分

视频放映

【持续更新】吃 OpenVINO 早餐,玩转深度学习部署

文稿阅读

打开 OpenVINO 开发文档主页: https://docs.openvinotoolkit.org/,点击 Go to Guides,在 Model Optimizer Developer Guide 中找到 Model Optimization Techniques ,这里介绍了模型优化器使用的一些优化技术。

线性操作融合

将 BatchNormalization 和 ScaleShift 分解成Mul → Add 序列,融合到邻近的 Convolution 或 FullyConnected 层中,以避免不必要的内存拷贝,从而加快推理速度。

早餐|第十七期 · 模型优化器对模型做了哪些优化
ResNet 优化( stride 优化)

针对 ResNet ,将大于1的 stride 从 kernel size = 1 的卷积层移动到上卷积层,从而减少中间层的运算量。

早餐|第十七期 · 模型优化器对模型做了哪些优化
Grouped Convolution 融合

通过 Concat 操作将 Split 的结果按原先的顺序拼接。

早餐|第十七期 · 模型优化器对模型做了哪些优化
以上这些优化在模型优化器中默认使用,可以通过 --disable_fusing 和-- disable_resnet_optimization 禁用。
另外,还可以通过 --finegrain_fusing 参数。指定对某些节点不进行融合操作。

早餐|第十七期 · 模型优化器对模型做了哪些优化

今天的解密就到这里,我们下期早餐再见!

END

今天的早餐就分享到这里,希望今天的内容对大家有帮助,用餐愉快哟。如果有想法的你希望能够交流心得体会,都欢迎在留言区告诉我们。感兴趣的小伙伴赶快加入我们的节目吧! 在这里,你可以分享任何你对 OpenVINO 的想法,使用体验,或者你使用 OpenVINO 做过的项目等等。

最后谢谢大家收看,我们下期早餐再见!

原文发布2020-09-03:早餐|第十七期 · 模型优化器对模型做了哪些优化

关注我们,让开发变得更有趣????
早餐|第十七期 · 模型优化器对模型做了哪些优化

微信号:openvinodev
B站:OpenVINO 中文社区

*OpenVINO and the OpenVINO logo are trademarks of Intel Corporation or its subsidiaries.