【问题标题】:sess.run() and ".eval()" in tensorflow programming张量流编程中的 sess.run() 和 ".eval()"
【发布时间】:2020-03-12 06:25:04
【问题描述】:

在 Tensorflow 编程中,有人能说出“.eval()”和“sess.run()”有什么区别吗?它们各自做什么以及何时使用它们?

【问题讨论】:

标签: python tensorflow machine-learning deep-learning data-science


【解决方案1】:

session 对象封装了计算张量对象的环境。

如果xtf.Tensor 对象,则tf.Tensor.evaltf.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

eval 一次获取单个张量值,如下所示

print(x.eval()) # 5.0
print(z.eval()) # 3.0

TensorFlow 计算定义了一个计算图,该计算图在进行如下评估之前没有数值

print(x) # Tensor("Const_1:0", shape=(), dtype=float32)

Tensorflow 2.x (>= 2.0),你可以用tf.compat.v1.Session()代替tf.session()

【讨论】:

  • @Pranav Kaushik,如果它回答了您的问题,请您接受并投票赞成。谢谢
猜你喜欢
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多