【问题标题】:How to reduce tensorflow size for android?如何减少安卓的张量流大小?
【发布时间】:2016-12-30 18:24:08
【问题描述】:

我正在尝试在我的 Android 应用程序中使用 TensorFlow。但是 .so 文件比需要的大一点,有没有办法减少 libtensorflow_inference.so 的大小?

链接TensorFlow-Android-Inference

【问题讨论】:

    标签: android tensorflow


    【解决方案1】:

    目前还没有很好的指导,但您可以先使用 print_selective_registration_header 脚本删除不需要的操作: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/print_selective_registration_header.py

    这需要更广泛地记录。

    【讨论】:

    • 谢谢,如果你这样做就太好了。还有protobuf呢?有没有办法删除未使用的 protobuf 代码?
    • 嗨,我生成了 ops_to_register.h 并将 -DSELECTIVE_REGISTRATION 和标志添加到 github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/… 中,还将 ops_to_register.h 添加到包含中。但这并不影响 .so 的大小。
    【解决方案2】:

    除了选择性注册,还可以尝试将-c opt传递给bazel。对我来说,这需要未压缩的 .so 大小从 24mb -> 13mb,并从 5.5mb -> 4.4mb 压缩。

    【讨论】:

    【解决方案3】:

    您可以尝试划分您的 apk 以减小 apk 大小。 Check this.

    【讨论】:

    • 谢谢,但我想减小 .so 库文件的大小
    【解决方案4】:

    我不知道如何减小 .so 文件的大小,但有一种方法可以通过压缩 TensorFlow 模型来节省大量空间。详情请见this excellent blog post by Pete Warden

    总而言之,您可以使用optimize_for_inferencequantize_graph 将87MB 模型压缩到24MB(在构建APK 时您会看到这种空间节省)。

    【讨论】:

      猜你喜欢
      • 2017-03-02
      • 1970-01-01
      • 2021-09-07
      • 2019-01-28
      • 2014-03-05
      • 2021-12-08
      • 2013-04-15
      • 1970-01-01
      • 2021-12-25
      相关资源
      最近更新 更多