![](/img/trans.png)
[英]How to assign a value to a tf.Variable in TensorFlow without using tf.assign
[英]How to ensure a tf.Variable has been initialized when using its value?
如何在确保变量已被初始化的同时获取变量的当前值? 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
在Variable
类上使用initialized_value()
方法: https : //github.com/tensorflow/tensorflow/blob/r1.5/tensorflow/python/ops/variables.py#L533
从文档字符串:
# Initialize 'v' with a random tensor.
v = tf.Variable(tf.truncated_normal([10, 40]))
# Use `initialized_value` to guarantee that `v` has been
# initialized before its value is used to initialize `w`.
# The random values are picked only once.
w = tf.Variable(v.initialized_value() * 2.0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.