【问题标题】:Optimizing a neural net for running in an embedded system优化神经网络以在嵌入式系统中运行
【发布时间】:2019-04-15 09:17:24
【问题描述】:

我在内存极其有限且处理能力更有限的嵌入式系统上运行一些代码。

我正在使用 TensorFlow 进行此实现。

我以前从未在这种环境中工作过。

我可以采取哪些步骤来确保我在实施/优化中尽可能高效?

一些想法 -
- 修剪代码 - https://jacobgil.github.io/deeplearning/pruning-deep-learning - 确保循环尽可能小(在大 O 意义上) - ...

非常感谢。

【问题讨论】:

  • 您对最大推理时间和最大 RAM 使用量有什么要求?
  • 您的 CNN 模型现在看起来如何?它应该执行什么任务?

标签: tensorflow machine-learning neural-network deep-learning conv-neural-network


【解决方案1】:

如果您使用的是 TensorFlow 1.13(2.0 原型之前的最新稳定版本),则有一个来自 tf.contrib 子模块的 pruning function。它包含一个稀疏参数,您可以调整该参数以确定网络的大小。

我建议您查看所有tf.contrib.model_pruning 子模块here。您的特定任务可能需要很多功能。

【讨论】:

    【解决方案2】:

    我建议使用 TensorFlow Lite。

    它将使您能够压缩和量化您的模型,使其更小、运行更快。

    它还支持利用 GPU 和/或硬件加速器(如果您可以使用其中任何一个)。

    https://www.tensorflow.org/lite

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 2016-11-28
      • 2018-11-18
      • 2018-03-26
      相关资源
      最近更新 更多