【发布时间】:2017-01-15 18:15:11
【问题描述】:
我在这里阅读了这个问题 TensorFlow - get current value of a Variable 答案让我很困惑。
一方面,dga 说“并且非常清楚:运行变量将 只产生变量的当前值;它不会运行任何 分配与之相关的操作。很便宜。”
另一方面,萨尔瓦多·达利说“@dga 是的,如果变量取决于 在 n 个其他变量上,它们也需要被评估。”
那么,它是什么?评估变量是否只返回其当前 值,或者它是否从它的变量从头开始重新计算它的值 取决于?
如果我连续两次评估同一个变量会发生什么?做 Tensorflow 有任何“陈旧”变量的概念,即 需要重新计算,因为它们的依赖关系实际上发生了变化(即像 构建系统)?
我问是因为我使用多个网络,其中一个网络的部分输出 net 成为另一个网络的部分输入。我想取 在一个网络的输入层计算梯度并将它们合并+应用到 另一个网络的输出层。我希望手动做到这一点 在图形的变量中检索/存储梯度,然后 运行图操作以反向传播梯度。因此我需要 了解这一切是如何运作的。
我做的和这个类似 How to use Tensorflow Optimizer without recomputing activations in reinforcement learning program that returns control after each iteration?,但我无法根据上一个答案得出结论是否可能(现在有实验支持吗?)
谢谢!
【问题讨论】:
标签: tensorflow