gpt4 book ai didi

tensorflow - tensorflow 图在什么阶段建立?

转载 作者:行者123 更新时间:2023-12-03 23:29:01 24 4
gpt4 key购买 nike

优化器通常在许多步骤中运行相同的计算图,直到收敛。 tensorflow 是否在开始时设置图形并在每个步骤中重复使用它?如果我在训练期间更改批量大小怎么办?如果我对图形进行一些负更改,例如更改损失函数,该怎么办?如果我对图表进行了一些重大更改怎么办? tensorflow 会预先生成所有可能的图表吗?当图发生变化时,tensorflow 是否知道如何优化整个计算?

最佳答案

keveman says ,从客户端的角度来看,只有一个 TensorFlow 图。在运行时,可以有多个修剪子图,其中仅包含计算值所需的节点t1。 , t2调用 sess.run([t1, t2, ...]) 时获取的等.

如果您调用sess.run([t1, t2])会将整个图 (sess.graph) 修剪为计算这些值所需的子图:即产生 t1 的操作和 t2以及他们所有的前身。如果您随后调用 sess.run([t3, t4]) ,运行时会将图修剪为计算 t3 所需的子图和 t4 .每次你传递一个新的值组合来获取时,TensorFlow 都会计算一个新的剪枝图并缓存它——这就是为什么第一个 sess.run()可能比后续的要慢一些。

如果修剪后的图重叠,TensorFlow 将为共享的操作重用“内核”。这是相关的,因为某些操作(例如 tf.Variable tf.FIFOQueue )是有状态的,并且它们的内容可以在两个修剪后的图中使用。例如,这允许您使用一个子图(例如 sess.run(tf.initialize_all_variables()) )初始化变量,用另一个子图(例如 sess.run(train_op) )训练它们,并使用第三个子图(例如 sess.run(loss, feed_dict={x: ...}) )评估您的模型。它还允许您使用一个子图将元素排入队列,并使用另一个子图将它们出队,这是 input pipelines 的基础。 .

关于tensorflow - tensorflow 图在什么阶段建立?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35491633/

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