Tensorflow中Tensor和Variable之间的区别是什么?

时间:2017-05-24 19:38:57

标签: tensorflow

Tensorflow中TensorVariable之间的区别是什么?我在this stackoverflow answer注意到,我们可以使用Variable,只要Tensor可以使用session.run()。但是,我没有在Variable上执行A = tf.zeros([10]) # A is a Tensor B = tf.Variable([111, 11, 11]) # B is a Variable sess.run(A) # OK. Will return the values in A sess.run(B) # Error.

X Y
a 1
b 1

1 个答案:

答案 0 :(得分:21)

Variable基本上是Tensor上的一个包装器,可以在多次调用<div class="menu"> <ul> <a href="#" class="menu"><li>Item 1</li></a> <a href="#" class="menu"><li>Item 2</li></a> </ul> </div> 时维护状态,我认为通过保存和恢复图表可以更轻松。在运行变量之前,需要初始化变量。在定义变量时提供初始值,但必须调用其初始化函数才能在会话中实际分配此值,然后使用变量。执行此操作的常用方法是使用tf.global_variables_initalizer()

例如:

run

至于为什么使用Variables而不是Tensors,基本上变量是一个具有额外功能和实用程序的Tensor。您可以将Variable指定为trainable(默认值,实际值),这意味着您的优化器会调整它以尽量减少您的成本函数;您可以指定变量驻留在分布式系统上的位置;您可以轻松保存和恢复变量和图形。有关如何使用变量的更多信息可以在here找到。