是否可以在 TensorFlow 中反向构建图?
Is it possible to construct a graph backwards in TesorFlow?
我想知道是否可以向后构造此图,所以而不是:
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)
理想情况下没有任何额外的结构,并且必然不会损失性能。
对于标准的 TensorFlow 操作,例如 tf.add()
,所有 操作的输入必须在构建操作之前构建。这是一个经过深思熟虑的设计选择,可以使意外构建无效图形变得更加困难(例如,使用格式错误的循环)。
然而,正如 Pete 在 中指出的那样,TensorFlow Python 绑定只是创建 NodeDef
协议缓冲区的函数的包装器。原则上,您可以创建自己的包装器,从而可以向后创建图形。但是,如果不更好地理解用例,我们不太可能在标准库中支持它。
我想知道是否可以向后构造此图,所以而不是:
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)
理想情况下没有任何额外的结构,并且必然不会损失性能。
对于标准的 TensorFlow 操作,例如 tf.add()
,所有 操作的输入必须在构建操作之前构建。这是一个经过深思熟虑的设计选择,可以使意外构建无效图形变得更加困难(例如,使用格式错误的循环)。
然而,正如 Pete 在 NodeDef
协议缓冲区的函数的包装器。原则上,您可以创建自己的包装器,从而可以向后创建图形。但是,如果不更好地理解用例,我们不太可能在标准库中支持它。