【发布时间】:2018-03-05 15:50:14
【问题描述】:
我有以下简化代码(实际上是展开的 LSTM 模型):
def func(a, b):
with tf.variable_scope('name'):
res = tf.add(a, b)
print(res.name)
return res
func(tf.constant(10), tf.constant(20))
每当我运行最后一行时,它似乎都会改变图表。但我不希望图表发生变化。其实我的代码是不同的,是一个神经网络模型,但它太大了,所以我添加了上面的代码。我想在不改变模型图的情况下调用func,但它会改变。我在TensorFlow 中读到了关于变量作用域的内容,但似乎我完全不明白。
【问题讨论】:
-
是的,
tf.add添加了一个新节点。您是否一直在为新节点拨打func?如果是,则必须更改图表以引入新的操作 -
@Maxim 不,假设 func 是一个计算图。我想在 for 循环中调用它。我不希望它一直在变化。我希望它保持不变。
-
我不明白你的情况。为什么要循环调用它?
-
@Maxim 实际上这是我的代码的一个非常简化的版本。我正在尝试实现 LSTM 模型。在我展开的 LSTM 版本中,每当我调用包含门操作的函数时,它都会产生新的东西。我希望模型保持不变,但它会一次又一次地制造它们。也感谢昨天帮助我。这真的很有帮助。
-
不客气!知道了,我会尽力回答的。
标签: python tensorflow while-loop lstm recurrent-neural-network