在这个案例中将考虑采用不同的方式来优化运行在移动设备上的 TensorFlow 代码。从减少模型的大小到量化等方面进行相关的分析。
使用 Bazel 来构建 TensorFlow 的不同组件,因此,第一步是确保已经安装了 Bazel 和 TensorFlow。
具体做法
- 从网址https://developer.android.com/studio/install.html安装 Android Studio。
- 按照网址https://docs.bazel.build/versions/master/install.html的说明安装 Bazel。对于 macOS 使用 Homebrew:
- 从 GitHub 克隆 TensorFlow 发行版:
- 建立总结计算图本身的计算图变换器:
- 下载一个 TensorFlow 计算图作为示例。本例中将使用 Inception v1 TensorFlow 计算图:
- 总结 Inception 计算图,并注意常量参数的数量:1346 万。每个参数都存储 32 位的浮点数,这非常占用资源:
- 编译用于将常值运算量化为 8 位的工具:
- 运行用于量化 Inception v1 计算图的工具:
- 比较这两个模型:
解读分析
量化有助于将常值运算从 32 位减小到 8 位,以减少模型的大小。一般来说,该模型性能不会显著下降,但是,必须要在一个个案例中加以核实。