[英]The difference between sess.run(c) and c.eval() in Tensorflow
[英]sess.run() and “.eval()” in tensorflow programming
在 Tensorflow 編程中,有人能說出“.eval()”和“sess.run()”有什么區別嗎? 他們每個人做什么以及何時使用它們?
session
object 封裝了評估張量對象的環境。
如果x
是tf.Tensor
object, tf.Tensor.eval
是tf.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.