我从Tensorflow-pruning得到了一个稀疏的权重矩阵来减少SqueezeNet
。在strip_pruning_vars
之后,我检查了权重矩阵中成功修剪为0的大部分元素。但是,模型的性能并未达到我的预期。似乎需要支持稀疏矩阵运算的其他软件库或硬件。有人告诉我,使用Intel-MKL
库会有所帮助,但我不知道如何将其与Tensorflow集成。现在,我已经修剪了.pb
个SqueezeNet文件。任何类型的帮助将不胜感激。
答案 0 :(得分:0)
您可以尝试针对TensorFlow * Wheel的英特尔®优化。
建议使用Intel环境。
请按照以下步骤操作。
使用以下命令创建conda环境:
conda create -n my_intel_env -c intel python=3.6
激活环境。
source activate my_intel_env
安装车轮
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还不支持它,所以我们只能得到一个稀疏模型,而不能提高速度。