Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查使用MKL的Tensorflow图重写是否发生?_Tensorflow_Intel Mkl - Fatal编程技术网

如何检查使用MKL的Tensorflow图重写是否发生?

如何检查使用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函

从外观上看,一些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函数来融合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())”