我在TensorFlow文档中阅读了以下句子:
除了tf.Variable之外,张量的值是不可变的, 这意味着仅在单个执行张量的情况下 有一个单一的价值。但是,两次评估同一张量可以 返回不同的值;例如张量可以是 从磁盘读取数据或生成随机数。
有人可以详细说明张量的“不变”方面吗?
答案 0 :(得分:2)
张量不同于变量,可以与数学方程进行比较。
当您说一个张量等于2 + 2时,它的值实际上不是4,它是导致2 + 2值的计算指令,而当您启动一个会话并执行它时,TensorFlow运行返回所需的计算2 + 2的值,并提供输出。而且由于张量是计算的结果,而不是结果,所以张量是不可变的
现在提出您的问题:
说张量可以用不同的值求值,这意味着,例如,如果说张量等于随机数,则在不同的时间运行它时,将具有不同的值(因为方程本身是一个随机数),但如前所述,张量本身的值不是值,而是导致它的步骤(在这种情况下为随机公式)
单个执行的上下文意味着运行张量时,它只会输出一个值。想像使用我提到的方程式那样执行张量。如果我说一个张量等于随机+ 1,当您一次执行张量时,它将返回一个随机值+1,没有别的。但是由于张量包含随机输出,因此如果多次运行,您很可能会获得不同的值