【发布时间】:2017-07-27 09:24:21
【问题描述】:
如何在确保变量已经初始化的同时获取变量的当前值? tf.Variable.initialized_value() 依赖于初始化程序,导致每次访问变量时都将其重置为其初始值。为了防止变量被重置,我尝试使用tf.cond() 和tf.is_variable_initialized() 作为谓词。但是,这不起作用,因为条件的真分支需要初始化变量,即使假分支处于活动状态:
import tensorflow as tf
def once_initialized_value(variable):
return tf.cond(
tf.is_variable_initialized(variable),
lambda: variable.value(),
lambda: variable.initialized_value())
a = tf.Variable(42, name='a')
b = tf.Variable(once_initialized_value(a), name='b')
sess = tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(b)) # Error: Attempting to use uninitialized value a
【问题讨论】:
-
我想您可以在以下帖子中找到一些好的答案:stackoverflow.com/questions/35164529/…
标签: python tensorflow