如何检查使用MKL的Tensorflow图重写是否发生?
从外观上看,一些MKL优化是通过用使用MKL的融合函数替换节点集的图形重写来完成的。我试着用如何检查使用MKL的Tensorflow图重写是否发生?,tensorflow,intel-mkl,Tensorflow,Intel Mkl,从外观上看,一些MKL优化是通过用使用MKL的融合函数替换节点集的图形重写来完成的。我试着用tf.logging.set\u verbosity(1)查找重写,但从未看到过 我已经在MCPU和XLA启用的CPU上建立了源代码。我认为构建使用的是MKL,因为我可以对tf.nn.conv2d和tf.nn.bias\u add使用“NCHW”数据格式,如果它们同时出现在向前传递中。它运行速度更快,并充分利用了CPU。后向传递错误表示“CPU BiasGradOp仅支持NHWC”,尽管看起来存在MKL函
tf.logging.set\u verbosity(1)
查找重写,但从未看到过
<>我已经在MCPU和XLA启用的CPU上建立了源代码。我认为构建使用的是MKL,因为我可以对tf.nn.conv2d
和tf.nn.bias\u add
使用“NCHW”数据格式,如果它们同时出现在向前传递中。它运行速度更快,并充分利用了CPU。后向传递错误表示“CPU BiasGradOp仅支持NHWC”,尽管看起来存在MKL函数来融合Conv2D和BiasAdd,并向前和向后使用“NCHW”。因此,我想直接寻找重写
如何查看图表是否正在重写?一种方法是使用时间线/跟踪功能。你可以遵循这个答案。如果它使用MKL,您将看到名为
\u MklReshape
或\u MklConv2D
的节点Tensorflow有一个带有教程的调试器(tfdbg)。调试器在运行会话之前,将打印会话.run()
将访问的所有图形节点的列表
还可以研究输入张量、输出张量和每个节点的属性
如果您不想花时间使用tfdbg编译,Ariel的答案也可以用来查看op类型。这不是专门测试图形重写,但您可以使用以下方法检查tensorflow中是否启用了mkl:
tf.python.pywrap_tensorflow.IsMklEnabled()
From:对于v2.0.0+来说,命令是:
python -c "from tensorflow.python import pywrap_tensorflow; print(pywrap_tensorflow.IsMklEnabled())"
来源:在当前版本中,命令更改为:python-c“import tensorflow;print(tensorflow.pywrap\u tensorflow.IsMklEnabled())”