tensorflow: variable的值与variable.read_value()的值区别详解

问题

查看 tensorflow api manual 时,看到关于 variable.read_value() 的注解如图:

tensorflow: variable的值与variable.read_value()的值区别详解

那么在 tensorflow 中,variable的值 与 variable.read_value()的值 到底有何区别?

实验代码

# coding=utf-8
import tensorflow as tf

# Create a variable.
w = tf.Variable(initial_value=10., dtype=tf.float32)

sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())

print '\nw.read_value() :\n', w.read_value(), '\n', w.read_value().eval()
print '\nw :\n', w, '\n', w.eval()

sess.close()

由打印结果可看出,

variable的值 与 variable.read_value()的值 之间的 区别 仅仅在于 tensor类型 的不一样;

但 eval() 后打印出的结果值是 一样的 。

w.read_value() :
Tensor("read:0", shape=(), dtype=float32) 
10.0

w :
<tf.Variable 'Variable:0' shape=() dtype=float32_ref> 
10.0

相关推荐