考虑以下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之间传输此数据时,这一点变得非常重要。
答案 0 :(得分:1)
TensorFlow会修剪图形,删除计算提取的张量所不需要的所有操作,但此修剪不适用于提要。 TensorFlow始终将馈送的numpy数组转换为tensorflow::Tensor
s。这涉及将内存从numpy数组复制到Tensor拥有的CPU内存。但是,没有数据会被复制到GPU。复制到GPU需要在GPU上使用此Tensor作为输入进行实际操作(幸免于修剪)。