试图在Tensorflow

问题描述:

使用未初始化的值当我键入下面的代码:试图在Tensorflow

x=tf.Variable([1.0, 2.0]) 
sess=tf.Session() 
sess.run(tf.initialize_all_variables()) 
print x.eval() 

它与“尝试使用未初始化值”让我想起了错误的信息。但是,当我修改上述代码为:

x=tf.Variable([1.0,2.0]) 
sess=tf.Session() 
sess.run(tf.initialize_all_variables()) 
x.initializer.run() 
print x.eval() 

它运作良好!我认为tf.initialize_all_variables()已经为tensorflow变量x初始化了。所以我对此感到困惑。有任何想法吗?

+0

这些代码示例都不应该像写入一样工作(除非在封闭范围内构建了另一个会话)。特别是'x.initializer.run()'和'x.eval()'应该引发一个错误,因为没有默认的会话 - 你需要创建一个'tf.InteractiveSession'或者用'tf .Session():'块。 – mrry

+0

没错。现在对我来说很清楚。感谢您的回答。 – yuanyuan

tf.initialize_all_variables文档:

该函数已过时。它将在2017-03-02之后被删除。更新说明:改为使用tf.global_variables_initializer。

这可能是原因。

+0

这不是答案。我仍然使用旧版本的Tensorflow。 'tf.initialize_all_variables'可以在我的其他代码中正常工作。 – yuanyuan

+0

你是对的,它甚至不应该运行在1.0上,我在r0.12上试过了,只有当我给当前会话的eval时,第一个代码才能正确运行:'print x.eval(session = sess)' –

+0

Got它。非常感谢。 – yuanyuan