TensorFlow中的张量如何不变?

时间:2018-10-18 17:03:41

标签: python tensorflow

我在TensorFlow文档中阅读了以下句子:

  

除了tf.Variable之外,张量的值是不可变的,   这意味着仅在单个执行张量的情况下   有一个单一的价值。但是,两次评估同一张量可以   返回不同的值;例如张量可以是   从磁盘读取数据或生成随机数。

有人可以详细说明张量的“不变”方面吗?

  1. 什么是“不变性范围”,因为两次评估张量可能会返回不同的结果?
  2. “单次执行的上下文”是什么意思?

1 个答案:

答案 0 :(得分:2)

张量不同于变量,可以与数学方程进行比较。

当您说一个张量等于2 + 2时,它的值实际上不是4,它是导致2 + 2值的计算指令,而当您启动一个会话并执行它时,TensorFlow运行返回所需的计算2 + 2的值,并提供输出。而且由于张量是计算的结果,而不是结果,所以张量是不可变的

现在提出您的问题:

  1. 说张量可以用不同的值求值,这意味着,例如,如果说张量等于随机数,则在不同的时间运行它时,将具有不同的值(因为方程本身是一个随机数),但如前所述,张量本身的值不是值,而是导致它的步骤(在这种情况下为随机公式)

  2. 单个执行的上下文意味着运行张量时,它只会输出一个值。想像使用我提到的方程式那样执行张量。如果我说一个张量等于随机+ 1,当您一次执行张量时,它将返回一个随机值+1,没有别的。但是由于张量包含随机输出,因此如果多次运行,您很可能会获得不同的值