簡體   English   中英

tensorflow 編程中的 sess.run() 和“.eval()”

[英]sess.run() and “.eval()” in tensorflow programming

在 Tensorflow 編程中,有人能說出“.eval()”和“sess.run()”有什么區別嗎? 他們每個人做什么以及何時使用它們?

session object 封裝了評估張量對象的環境。

如果xtf.Tensor object, tf.Tensor.evaltf.Session.run的簡寫,其中sess是當前的tf.get_default_session

您可以將 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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM