tensorflow - 当我从修剪中得到稀疏矩阵时,如何加快 TensorFlow 中的推理速度?

标签 tensorflow sparse-matrix hardware intel-mkl pruning

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

最佳答案

您可以尝试面向 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”。

    希望这可以帮助。

    关于tensorflow - 当我从修剪中得到稀疏矩阵时,如何加快 TensorFlow 中的推理速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55532982/

    相关文章:

    r - 如何将稀疏矩阵转换为非零元素的索引和值的矩阵

    linux - Web服务器(和相关软件)是否使用计算机的所有CPU内核?

    linux - 是否有通用的 linux 实用程序/方式来查询有关系统上所有磁盘的信息?

    TensorFlow 对象检测 API : specifying multiple data_augmentation_options

    Tensorflow 未检测到 GPU - 添加可见的 GPU 设备 : 0

    tensorflow - ArcFace 严格来说是损失函数还是激活函数?

    embedded - Soc(片上系统)和SBC(单板计算机)的区别

    tensorflow - 在拟合和预测模型之前,如何将 logits 传递给 sigmoid_cross_entropy_with_logits?

    r - 插入符号中的哪些模型可以对 X 使用稀疏矩阵?

    python - 如何在Python上增量创建稀疏矩阵?