我想问的一个极端情况是:
tf.Session().run(fetches = [a,a], feed_dict = feed_dict)
这里的tensorflow会运行两次相同的计算吗?
答案 0 :(得分:2)
不,tensorflow将仅计算您的请求,不多也不少。如果两个计算依赖于相同的代码位,例如两个损失函数取决于相同的神经网络核心,则核心将不会被计算两次。另一方面,如果张量流中的OP 不需要执行计算,则tensorflow将不计算它。这是张量流依赖图提供的神奇之处。
另请注意,在调用sess.run
之间将重新计算任何OP(操作),因为在sess.run
的调用之间不存储OP,这是对sess.run
的调用之间唯一保留的内容是变量。