运行空操作时的Tensorflow数据传输

时间:2018-05-20 15:45:04

标签: python tensorflow

考虑以下Tensorflow代码:

op = tf.no_op()
sess = tf.Session()
feed_dict = ...
sess.run(op, feed_dict=feed_dict)

由于op是一个空操作并且不依赖于任何其他操作,因此tensorflow将使用指定的数据填充feed_dict中的占位符,或者它将能够解决该问题没有必要做这项工作。我想如果op是一个空的python列表或字典,行为将是相同的?当feed_dict包含大量数据以及必须在CPU和GPU之间传输此数据时,这一点变得非常重要。

1 个答案:

答案 0 :(得分:1)

TensorFlow会修剪图形,删除计算提取的张量所不需要的所有操作,但此修剪不适用于提要。 TensorFlow始终将馈送的numpy数组转换为tensorflow::Tensor s。这涉及将内存从numpy数组复制到Tensor拥有的CPU内存。但是,没有数据会被复制到GPU。复制到GPU需要在GPU上使用此Tensor作为输入进行实际操作(幸免于修剪)。