首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有一种标准的方法来优化模型,使其在不同的移动设备上运行良好?

有没有一种标准的方法来优化模型,使其在不同的移动设备上运行良好?
EN

Stack Overflow用户
提问于 2019-05-17 22:29:36
回答 1查看 41关注 0票数 0

我正在做一些辅助项目,涉及到将ML模型部署到边缘。其中一个是照片编辑应用程序,其中包括用于面部识别、物体检测、分类和风格转移的CNN应用程序。另一个是NLP应用程序,通过建议单词和句子补全来帮助写作过程。

一旦我有了一个准确的训练有素的模型,它在我正在测试的一个或多个移动设备(通常是低端的Android)上会变得非常慢。我读到有一些优化可以提高模型的速度,但我不知道怎么做。有没有一个标准的工具来优化移动/边缘的模型?

EN

回答 1

Stack Overflow用户

发布于 2019-05-18 00:23:39

我将特别讨论Android精简版,它是一个在TensorFlow和iOS上运行TensorFlow操作的平台。在他们的website上提到了几种优化技术,但我将讨论对我来说重要的那些。

为平台构建相关模型:

模型优化的第一步是从头开始构建,这意味着TensorFlow。我们需要创建一个可以导出到内存受限设备的模型。

我们肯定需要为不同的机器训练不同的模型。为在高端TPU上工作而构建的模型永远不会在移动处理器上高效运行。

  • 创建具有最少层和运算符的模型。
  • 执行此操作时不会影响模型的准确性。
  • 为此,您将需要ML方面的专业知识,以及哪些运算符是预处理数据的最佳方案。
  • 此外,输入数据的额外预处理在很大程度上降低了模型的复杂性。

模型量化:

我们将高精度的浮点数或小数转换为低精度的浮点数。它对模型的性能影响很小,但会大大减小模型的大小,从而占用更少的内存。

训练后量化是一种通用技术,可以减少模型大小,同时提供高达3倍的延迟,同时几乎不会降低模型精度。训练后量化将权重从浮点量化到8位精度-来自TF docs

您可以查看TensorFlow精简版TFLiteConverter示例:

代码语言:javascript
运行
复制
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_SIZE]
tflite_quant_model = converter.convert()

此外,您应该尝试使用post_training_quantize=标志,它可以显著减小模型大小。

希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56188517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档