我想知道是否可以向后构建这个图,所以代替:
n1 = tf.add(2,3)
n2 = tf.add(2,n1)
n3 = tf.add(n1,n2)
这样:
n1 = None
n2 = None
n3 = tf.add(n1,n2)
n2 = tf.add(2,n1)
n1 = tf.add(2,3)
理想情况下,没有任何额外的结构,并且必然没有性能损失。
答案 0 :(得分:1)
对于标准的TensorFlow操作,例如tf.add()
, op的所有输入必须在构造op之前构建。这是一个深思熟虑的设计选择,使得更难以意外地构建无效图形(例如,形成错误的循环)。
然而,正如Pete在his comment中所说,TensorFlow Python绑定只是创建NodeDef
协议缓冲区的函数的包装。原则上,您可以创建自己的包装器,从而可以向后创建图形。如果不更好地理解用例,我们不太可能在标准库中支持它。