Tensorflow中Tensor
和Variable
之间的区别是什么?我在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
答案 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找到。