假设我有一些var v 和一些操作 increase_op = tf.assign_add(v, 1) 在计算图中,但是我做了 session.run 对于不依赖于 increase_op 它也不在任何控件依赖项中。
v
increase_op = tf.assign_add(v, 1)
session.run
increase_op
增加
tf.assign_add(v, some_very_big_thing)
我能确定它不会执行增加操作吗?
对.
也就是说,TensorFlow总是只在需要时执行OP,而不执行任何推测性的执行?
是的,大多数TensorFlow程序都依赖于这种图形修剪来确保正确性,因此对此进行任何更改都必须小心。
在计算图中增加“op”会有其他的副作用吗,例如预先分配一些内存(例如假设tf.assign ou-add(v,some ou-very-big ou thing))?
如果 some_very_big_thing 是tf.constant,那么它将永久地耗尽ram,但是如果它是由另一个计算产生的张量,那么就可以了。
some_very_big_thing