如何检查Tensorflow图形是否重写使用MKL的情况?

时间:2017-07-03 08:18:27

标签: tensorflow intel-mkl

Tensorflow code开始,一些MKL优化是通过图形重写来完成的,这些图形重写通过使用MKL的融合函数替换节点集。我尝试使用tf.logging.set_verbosity(1)查找重写但从未见过log messages I expect

我已经在CPU上创建了Tensorflow,并启用了MKL和XLA。我认为构建使用的是MKL,因为我可以使用NCHW'前向传递中tf.nn.conv2dtf.nn.bias_add的数据格式,如果它们一起出现的话。它运行速度更快,充分利用了CPU。向后传递虽然错误说" CPU BiasGradOp仅支持NHWC"虽然看起来像MKL功能可以融合Conv2D和BiasAdd向前和向后融合NCHW'。所以我想直接寻找重写。

如何查看图表是否重写?

4 个答案:

答案 0 :(得分:2)

一种方法是使用时间轴/跟踪功能。您可以按照StackOverflow这个答案进行操作。如果它使用MKL,您会看到名称为_MklReshape_MklConv2D

的节点

答案 1 :(得分:1)

这不是专门测试图形重写的方法,但是您可以使用以下方法检查是否在tensorflow中启用了mkl:

tf.python.pywrap_tensorflow.IsMklEnabled()

发件人:https://github.com/tensorflow/tensorflow/issues/17176#issuecomment-371364155

答案 2 :(得分:0)

Tensorflow有一个带有教程here的调试器(tfdbg)。调试器在运行之前打印session.run()将访问的所有图节点的列表。

您还可以探索输入张量,输出张量和每个节点的属性。

如果你不想花时间用tfdbg编译,Ariel的答案也可以看到op类型。

答案 3 :(得分:0)

对于v2.0.0 +,命令为:

python -c "from tensorflow.python import pywrap_tensorflow; print(pywrap_tensorflow.IsMklEnabled())"

来源:https://software.intel.com/en-us/forums/intel-optimized-ai-frameworks/topic/837000