如何获取变量的当前值?
How do I get the current value of a Variable?
假设我们有一个变量:
x = tf.Variable(...)
这个变量可以在训练过程中使用assign()
方法更新。
获取变量当前值的最佳方法是什么?
我知道我们可以使用这个:
session.run(x)
但我担心这会触发整个操作链。
在 Theano 中,你可以这样做
y = theano.shared(...)
y_vals = y.get_value()
我正在寻找 TensorFlow 中的等效项。
一般来说,session.run(x)
只会评估计算 x
所必需的节点,而不会计算其他任何节点,因此如果您想检查变量的值,它应该相对便宜。
看看这个很棒的答案 了解更多上下文。
获取变量值的唯一方法是 运行 它在 session
中。在 FAQ it is written 中:
A Tensor object is a symbolic handle to the result of an operation,
but does not actually hold the values of the operation's output.
所以 TF 等价物是:
import tensorflow as tf
x = tf.Variable([1.0, 2.0])
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
v = sess.run(x)
print(v) # will show you your variable.
带有init = global_variables_initializer()
的部分很重要,应该完成以初始化变量。
此外,如果您在 IPython 工作,请查看 InteractiveSession。
tf.Print
可以简化你的生活!
tf.Print
将打印您告诉它在评估代码时在代码中调用 tf.Print
行时打印的张量的值。
例如:
import tensorflow as tf
x = tf.Variable([1.0, 2.0])
x = tf.Print(x,[x])
x = 2* x
tf.initialize_all_variables()
sess = tf.Session()
sess.run()
[1.0 2.0 ]
因为它在 tf.Print
行的那一刻打印了 x
的值。相反,如果你这样做
v = x.eval()
print(v)
您将获得:
[2.0 4.0 ]
因为它会给你 x 的最终值。
因为他们在 tensorflow 2.0.0
中取消了 tf.Variable()
,
如果你想从 tensor(ie "net")
中提取值,你可以使用这个,
net.[tf.newaxis,:,:].numpy().
假设我们有一个变量:
x = tf.Variable(...)
这个变量可以在训练过程中使用assign()
方法更新。
获取变量当前值的最佳方法是什么?
我知道我们可以使用这个:
session.run(x)
但我担心这会触发整个操作链。
在 Theano 中,你可以这样做
y = theano.shared(...)
y_vals = y.get_value()
我正在寻找 TensorFlow 中的等效项。
一般来说,session.run(x)
只会评估计算 x
所必需的节点,而不会计算其他任何节点,因此如果您想检查变量的值,它应该相对便宜。
看看这个很棒的答案
获取变量值的唯一方法是 运行 它在 session
中。在 FAQ it is written 中:
A Tensor object is a symbolic handle to the result of an operation, but does not actually hold the values of the operation's output.
所以 TF 等价物是:
import tensorflow as tf
x = tf.Variable([1.0, 2.0])
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
v = sess.run(x)
print(v) # will show you your variable.
带有init = global_variables_initializer()
的部分很重要,应该完成以初始化变量。
此外,如果您在 IPython 工作,请查看 InteractiveSession。
tf.Print
可以简化你的生活!
tf.Print
将打印您告诉它在评估代码时在代码中调用 tf.Print
行时打印的张量的值。
例如:
import tensorflow as tf
x = tf.Variable([1.0, 2.0])
x = tf.Print(x,[x])
x = 2* x
tf.initialize_all_variables()
sess = tf.Session()
sess.run()
[1.0 2.0 ]
因为它在 tf.Print
行的那一刻打印了 x
的值。相反,如果你这样做
v = x.eval()
print(v)
您将获得:
[2.0 4.0 ]
因为它会给你 x 的最终值。
因为他们在 tensorflow 2.0.0
中取消了 tf.Variable()
,
如果你想从 tensor(ie "net")
中提取值,你可以使用这个,
net.[tf.newaxis,:,:].numpy().