如何优化训练有素的Tensorflow图以提高执行速度?

时间:2019-05-23 05:57:15

标签: tensorflow optimization deep-learning tensorflow-xla

为了对冻结的Tensorflow图(.pb)进行快速的CPU推断,我目前正在使用Tensorflow的C API。推理速度已经相当不错,但是(与Intel的OpenVINO等特定于CPU的工具相比),到目前为止,我无法在运行图形之前以某种方式对其进行优化。我对任何适合的优化都感兴趣: -针对CPU的设备特定优化 -特定于图形的优化(融合操作,删除节点等) -...一切都会减少推理所需的时间。

因此,我正在寻找一种在训练后和执行之前优化图形的方法。如前所述,诸如Intel的OpenVINO(用于CPU)和NVIDIA的TensorRT(用于GPU)之类的工具都具有类似的功能。我也在与OpenVINO合作,但目前正在等待错误修复,因此我想尝试其他方法。

我曾考虑过尝试Tensorflow XLA,但是我没有使用它的经验。此外,我必须确保获取冻结图(.pb)或最终可以转换为冻结图的内容(例如.h5)。

我会很感激建议!

礼物

1 个答案:

答案 0 :(得分:0)

请按照以下步骤操作:

  1. 冻结tensorflow训练模型(frozen_graph.pb)-为此,您可能需要训练过的模型.pb,检查点和输出节点名称
  2. 使用Intel OpenVINO模型优化器优化冻结的模型-
  

python3 mo.py --input_model Frozen_graph.pb

另外,您可能需要input_shape

  1. 您将获得.xml和.bin文件。借助Benchmark_app,您可以检查推理优化。