只在需要时执行操作?

时间:2018-05-29 14:23:34

标签: tensorflow

假设我在计算图中有一些变量v和一些变量increase_op = tf.assign_add(v, 1),但是对于某些不依赖于{{{}的无关运算/张量,我会session.run increase_op 1}}也没有任何控制依赖。

  • 我可以确定它不会执行increase_op吗?
  • 即。如果需要,TensorFlow将始终只执行一个操作而不进行任何推测性执行?
  • 计算图中的increase_op会有任何其他副作用,例如预先分配一些内存(例如假设代替tf.assign_add(v, some_very_big_thing))?

1 个答案:

答案 0 :(得分:1)

  

我可以确定它不会执行increase_op吗?

  

即。如果需要,TensorFlow将始终只执行操作并且不进行任何推测性执行?

是的,大多数tensorflow程序都依赖于这种图形修剪来保证正确性,因此任何改变都必须小心。

  

计算图中的increase_op是否会产生任何其他副作用,例如预先分配一些内存(例如假设改为tf.assign_add(v,some_very_big_thing))?

如果some_very_big_thing是tf.constant,那么它将永久耗尽RAM,但如果它是从另一个计算产生的Tensor,那么你将没事。