首页 > 解决方案 > 当 fetch 包含 Operation 和 Tensor 时,tf.Session.run 如何工作?

问题描述

红色矩形中的值令人困惑:

图像1

的描述Session.run

图2

为什么变量 tmpA 的值是 1.0,它应该是 9999.0,因为 B 的值是 10001.0

有人可以解释函数 tf.Session.run 是如何工作的吗?

标签: tensorflow

解决方案


我建议您使用 Tensorboard 检查图表。计算顺序导致了这个结果。

当你运行第 13 行 sess.run([A, ops, B]) 时,程序

  1. 为 tmpA (1.0) 获取 A 的值
  2. 将 9999 分配给 A
  3. 计算 B

所以 tmpA 的值为 1.0,tmpBB 为 10001。

实际上 [A, ops, B] 的求值顺序是不确定的,所以有可能 tmpA 变成 9999 而 tmpBB 变成 3。


推荐阅读