在Tensorflow编程中,有人能说出".eval()“和"sess.run()”之间的区别吗?他们每个人做什么,什么时候使用他们?
发布于 2020-05-13 21:58:48
session对象封装了计算张量对象的环境。
如果x是tf.Tensor对象,则tf.Tensor.eval是tf.Session.run的简写,其中sess是当前的tf.get_default_session。
您可以将会话设置为默认会话,如下所示
x = tf.constant(5.0)
y = tf.constant(6.0)
z = x * y
with tf.Session() as sess:
print(sess.run(z)) # 30.0
print(z.eval()) # 30.0最重要的区别是您可以使用sess.run在相同的步骤中获取多个张量的值,如下所示
print(sess.run([x,y])) # [5.0, 6.0]
print(sess.run(z)) # 30.0其中as eval一次获取单个张量值,如下所示
print(x.eval()) # 5.0
print(z.eval()) # 3.0TensorFlow计算定义了一个没有数值的计算图,计算结果如下所示
print(x) # Tensor("Const_1:0", shape=(), dtype=float32)在Tensorflow 2.x (>= 2.0)中,可以使用tf.compat.v1.Session()而不是tf.session()
https://stackoverflow.com/questions/58888215
复制相似问题