安装具有量化支持的 Tensorflow

Install Tensorflow with Quantization Support

这是我另一个问题的后续:

基本上,我想安装支持 8 位量化的 Tensorflow。目前,我在CentOS 7机器(不支持GPU)上用pip安装方式安装了Tensorflow 0.9。

我可以编译 运行 Pete Warden 博客 post 中给出的代码。但是,我无法导入 Pete Warden 回复中给出的功能。我想添加量化支持。我也无法在 Tensorflow 文档中找到有关量化部分的任何详细信息。

任何人都可以分享有关如何操作的详细信息吗?

暂时,我想出了一个方法来做到这一点。但仍在等待任何 TensorFlow 开发人员的官方方法。

  1. 首先安装tensorflow(源码安装和pip安装我都试过了,都可以)
  2. 从 Github 存储库获取 tensorflow 源并转到 tensorflow 根目录(我将其命名为 tensorflow_root.
  3. 现在编译Pete Warden's blog
  4. 中给出的量化脚本

bazel build tensorflow/contrib/quantization/tools:quantize_graph

这将为量化版本创建操作库。转到 tensorflow_root/bazel-bin/tensorflow/contrib/quantization,您应该会看到两个库文件:_quantized_ops.sokernels/_quantized_kernels.so

  1. 现在,在您的脚本中,连同 tensorflow,您还应该使用专用的 tensorflow 函数导入这两个库文件

您可以使用 tf.load_op_library() 函数

import tensorflow as tf
qops = tf.load_op_library('[tensorflow_root]/bazel-bin/tensorflow/contrib/quantization/_quantized_ops.so')
qkernelops = tf.load_op_library('[tensorflow_root]/bazel-bin/tensorflow/contrib/quantization/kernels/_quantized_kernels.so')

您使用的是 GPU 还是 CPU 版本的 tensorflow。

例如,它不适用于 CPU,尽管 Abid 已经提到从本地工作目录加载 ops 库。

但是当最新版本集成了这些操作并且导入时没有错误时,使用 bazel build 有什么意义呢?

$ khemant@saturn:~/DeepLearning/TF$ python -c "import tensorflow as tf; print(tf.__version__)"

0.12.0-rc0

$ khemant@saturn:~/DeepLearning/TF$ python

Python 2.7.6(默认值,2016 年 10 月 26 日,20:30:19) Linux2 上的 [GCC 4.8.4] 键入 "help"、"copyright"、"credits" 或 "license" 以获取更多信息。

>>> from tensorflow.contrib.quantization import load_quantized_ops_so

回溯(最近调用最后): 文件“”,第 1 行,位于 导入错误:无法导入名称 load_quantized_ops_so

>>> import tensorflow as tf

>>> from tensorflow.contrib.quantization import load_quantized_ops_so

回溯(最近调用最后): 文件“”,第 1 行,位于 导入错误:无法导入名称 load_quantized_ops_so `