gpt4 book ai didi

tensorflow - TensorFlow 使用什么缓存模型?

转载 作者:行者123 更新时间:2023-12-04 03:19:17 25 4
gpt4 key购买 nike

我在这里阅读了问题 TensorFlow - get current value of a Variable答案让我感到困惑。

一方面,dga 说“非常清楚:运行变量将只产生变量的当前值;它不会运行任何分配与之关联的操作。它很便宜。”

另一方面,Salvador Dali 说“@dga 是的,如果变量取决于在 n 个其他变量上,它们也需要被评估。”

那么,它是什么?评估变量是否只返回其当前值,还是从头开始从它的变量重新计算它的值取决于?

如果我连续两次计算同一个变量会怎样?做Tensorflow 有任何“陈旧”变量的概念,即变量需要重新计算,因为它们的依赖关系实际上发生了变化(即像构建系统)?

我问是因为我使用多个网络,其中一个网络的部分输出net 成为另一个网络的部分输入。我想获取在一个网络的输入层计算梯度并将它们合并+应用到另一个网络的输出层。我希望手动执行此操作在图形的变量中检索/存储梯度,然后运行图形操作来反向传播梯度。因此我需要了解它是如何在幕后运作的。

我做的和这个差不多 How to use Tensorflow Optimizer without recomputing activations in reinforcement learning program that returns control after each iteration? , 但我不能根据最后的答案得出是否可行的结论(现在有实验支持吗?)

谢谢!

最佳答案

@dga 是正确的。如果将 tf.Variable 对象传递给 tf.Session.run(),TensorFlow 将返回变量的当前值,并且不会执行任何计算。它很便宜(内存复制的成本,或者在分布式 TensorFlow 设置的情况下可能是网络传输的成本)。 TensorFlow 不保留任何有关 tf.Variable 的值如何更新的历史记录*,因此它通常无法从头开始重新计算其值。


(* 从技术上讲,TensorFlow 会记住用于初始化每个变量的tf.Tensor,因此可以重新计算变量的初始值。)

关于tensorflow - TensorFlow 使用什么缓存模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39380334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com