2017-05-24 186 views

回答

6

Variable基本上是在Tensor包装跨多个呼叫保持状态run,我觉得做更容易保存和恢复图表一些事情。变量需要在运行之前进行初始化。您在定义变量时提供初始值,但必须调用其初始化函数才能在会话中实际分配此值,然后使用变量。一个常见的方法是使用tf.global_variables_initalizer()

例如:

import tensorflow as tf 
test_var = tf.Variable([111, 11, 1]) 
sess = tf.Session() 
sess.run(test_var) 

# Error! 

sess.run(tf.global_variables_initializer()) # initialize variables 
sess.run(test_var) 
# array([111, 11, 1], dtype=int32) 

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

+1

谢谢!这样做更有意义。事实上,我没有初始化变量。 –

相关问题