从修剪中获得稀疏矩阵后,如何在TensorFlow中加快推理速度?

时间:2019-04-05 10:05:30

标签: tensorflow sparse-matrix hardware intel-mkl pruning

我从Tensorflow-pruning得到了一个稀疏的权重矩阵来减少SqueezeNet。在strip_pruning_vars之后,我检查了权重矩阵中成功修剪为0的大部分元素。但是,模型的性能并未达到我的预期。似乎需要支持稀疏矩阵运算的其他软件库或硬件。有人告诉我,使用Intel-MKL库会有所帮助,但我不知道如何将其与Tensorflow集成。现在,我已经修剪了.pb个SqueezeNet文件。任何类型的帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以尝试针对TensorFlow * Wheel的英特尔®优化。

建议使用Intel环境。

请按照以下步骤操作。

  1. 使用以下命令创建conda环境:

    conda create -n my_intel_env -c intel python=3.6

  2. 激活环境。

    source activate my_intel_env

  3. 安装车轮

    pip install https://storage.googleapis.com/intel-optimized-tensorflow/tensorflow-1.11.0-cp36-cp36m-linux_x86_64.whl

有关更多详细信息,您可以参考https://software.intel.com/en-us/articles/intel-optimization-for-tensorflow-installation-guide

安装后,您可以按照python提示符下的以下命令检查是否启用了mkl。

from tensorflow.python.framework import test_util
test_util.IsMklEnabled()

如果启用了mkl,则应返回“ True”。

希望这会有所帮助。

答案 1 :(得分:0)

我也遇到了同样的问题。我使用张量流修剪模型,但实际上修剪后的模型没有更快的预测速度。 在张量流(https://www.tensorflow.org/model_optimization/guide/roadmap)的路线图中,他们说他们将来会支持稀疏模型的执行。所以我想原因是到目前为止tensorflow还不支持它,所以我们只能得到一个稀疏模型,而不能提高速度。