tensorflow中run和eval的區別(轉)


在tensorflow中,eval和run都是獲取當前結點的值的一種方式。

在使用eval時,若有一個 t 是Tensor對象,調用t.eval()相當於調用sess.run(t) 一下兩段代碼等效:

float_tensor = tf.cast(tf.constant([1, 2, 3]),dtype=tf.float32)
t = float_tensor * float_tensor

sess = tf.Session()
with sess.as_default():
    print(t.eval())
    print(sess.run(t))

result:

[1. 4. 9.]
[1. 4. 9.]

區別 
兩者的區別主要在於,eval一次只能得到一個結點的值,而run可以得到多個。

float_tensor = tf.cast(tf.constant([1, 2, 3]),dtype=tf.float32)
t = float_tensor * float_tensor

sess = tf.Session()
with sess.as_default():
    print(t.eval(), float_tensor.eval())
    print(sess.run((t, float_tensor)))

result:

[1. 4. 9.] [1. 2. 3.]
(array([1., 4., 9.], dtype=float32), array([1., 2., 3.], dtype=float32))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM