LDG*_*DGN 37 python tensorflow
假设我们有一个变量:
x = tf.Variable(...)
Run Code Online (Sandbox Code Playgroud)
可以在训练过程中使用该assign()方法更新此变量.
获取变量当前值的最佳方法是什么?
我知道我们可以用这个:
session.run(x)
Run Code Online (Sandbox Code Playgroud)
但我担心这会触发一整套操作.
在Theano,你可以做到
y = theano.shared(...)
y_vals = y.get_value()
Run Code Online (Sandbox Code Playgroud)
我在TensorFlow中寻找相同的东西.
Sal*_*ali 36
获取变量值的唯一方法是在a中运行它session.在FAQ中写道:
Tensor对象是操作结果的符号句柄,但实际上并不保存操作输出的值.
所以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.
Run Code Online (Sandbox Code Playgroud)
部分init = global_variables_initializer()是重要的,应该完成以初始化变量.
另外,如果您在IPython中工作,请查看InteractiveSession.
Raf*_*icz 22
通常,session.run(x)只评估计算所需的节点,x而不是其他任何节点,因此如果要检查变量的值,它应该相对便宜.
有关更多上下文,请查看这个伟大的答案/sf/answers/2352764011/.
pat*_*_ai 16
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()
Run Code Online (Sandbox Code Playgroud)
[1.0 2.0]
因为它打印了x该tf.Print行时刻的值.相反,如果你这样做
v = x.eval()
print(v)
Run Code Online (Sandbox Code Playgroud)
你会得到:
[2.0 4.0]
因为它会给你最终的x值.
| 归档时间: |
|
| 查看次数: |
81829 次 |
| 最近记录: |