小编Arm*_*nez的帖子

首先tf.session.run()的执行与以后的运行截然不同。为什么?

下面是一个示例来阐明我的意思:
First session.run():
TensorFlow会话的首次运行

稍后session.run():
稍后运行TensorFlow会话

我了解TensorFlow在这里进行一些初始化,但是我想知道这在源代码中体现了什么。这在CPU和GPU上都发生,但是在GPU上的影响更为明显。例如,在显式Conv2D操作的情况下,第一次运行在GPU流中具有大量Conv2D操作。实际上,如果我更改Conv2D的输入大小,则它可以从数十个流转换为Conv2D操作。但是,在以后的运行中,GPU流中始终只有五个Conv2D操作(与输入大小无关)。在CPU上运行时,与以后的运行相比,我们在第一次运行中保留了相同的操作列表,但是确实看到了相同的时间差异。

TensorFlow源的哪一部分负责此行为?GPU操作在哪里“分裂”?

谢谢您的帮助!

cublas tensorflow cudnn tensorflow-gpu tensorflow-xla

7
推荐指数
1
解决办法
2347
查看次数