摘要:下面的兩個代碼片段是等價的在第二個示例中,會話充當上下文管理器,其作用是將其安裝為塊的生命周期的默認會話。上下文管理器方法可以為簡單用例比如單元測試提供更簡潔的代碼如果您的代碼處理多個圖形和會話,則可以更直接地對進行顯式調用。
Tensorflow:.run()和.eval()區別 eval() 其實就是tf.Tensor的Session.run() 的另外一種寫法,但兩者有差別
1.eval(): 將字符串string對象轉化為有效的表達式參與求值運算返回計算結果
2.eval()也是啟動計算的一種方式。基于Tensorflow的基本原理,首先需要定義圖,然后計算圖,其中計算圖的函數常見的有run()函數,如sess.run()。同樣eval()也是此類函數,
3.要注意的是,eval()只能用于tf.Tensor類對象,也就是有輸出的Operation。對于沒有輸出的Operation, 可以用.run()或者Session.run();Session.run()沒有這個限制。
在會話中需要運行節點,會碰到兩種方式:Session.run()和Tensor.eval()
解釋一
1.如果t是一個tf.Tensor對象,則tf.Tensor.eval是tf.Session.run的縮寫(其中sess是當前的tf.get_default_session。下面的兩個代碼片段是等價的:
2.在第二個示例中,會話充當上下文管理器,其作用是將其安裝為with塊的生命周期的默認會話。 上下文管理器方法可以為簡單用例(比如單元測試)提供更簡潔的代碼; 如果您的代碼處理多個圖形和會話,則可以更直接地對Session.run()進行顯式調用。
解釋二
如果你有一個Tensor t,在使用t.eval()時,等價于:tf.get_default_session().run(t).
舉例:
t = tf.constant(42.0) sess = tf.Session() with sess.as_default(): # or `with sess:` to close on exit assert sess is tf.get_default_session() assert t.eval() == sess.run(t)
這其中最主要的區別就在于你可以使用sess.run()在同一步獲取多個tensor中的值,
例如:
t = tf.constant(42.0) u = tf.constant(37.0) tu = tf.mul(t, u) ut = tf.mul(u, t) with sess.as_default(): tu.eval() # runs one step ut.eval() # runs one step sess.run([tu, ut]) # evaluates both tensors in a single step
注意到:每次使用 eval 和 run時,都會執行整個計算圖,為了獲取計算的結果,將它分配給tf.Variable,然后獲取。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41846.html
摘要:安裝好了安裝筆記,接下來就在他的官網指導下進行手寫數字識別實驗。實驗過程進入虛擬環境后,首先進入目錄然后進入交互終端。 安裝好了tensorflow(TensorFlow 安裝筆記),接下來就在他的官網指導下進行Mnist手寫數字識別實驗。 softmax 實驗過程 進入tfgpu虛擬環境后,首先進入目錄:/anaconda2/envs/tfgpu/lib/python2.7/site...
閱讀 2137·2023-04-25 18:49
閱讀 1840·2019-08-30 14:02
閱讀 2643·2019-08-29 17:24
閱讀 3323·2019-08-28 18:10
閱讀 2926·2019-08-28 18:03
閱讀 488·2019-08-26 12:01
閱讀 3309·2019-08-26 11:31
閱讀 1409·2019-08-26 10:29