iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 13
0

有向無環圖就像任何圖一樣。
它由邊和節點組成。邊緣代表數據,代表張量,它們是n維數組。
節點表示對這些張量的TensorFlow操作。TensorFlow DAG由這些張量上的張量和運算組成。那麼,為什麼TensorFlow會做懶惰的評估呢?這是因為在運行圖表時,延遲評估允許很多靈活性和優化。
TensorFlow現在可以處理圖形,編譯它,在DAG中間插入發送和接收節點,也可以遠程執行。
Tensorflow可以將DAG的不同部分分配給不同的設備,具體取決於它是否受I / O限制,或者是否需要GPU功能。
在處理圖形時,TensorFlow可以添加量化或數據類型,它可以添加調試節點,它可以創建匯總來寫出值,因此張量可以讀取它們除了計算,如add,matmul,常量,變量所有這些都是操作和TensorFlow可以合作。
在編譯圖形時,TensorFlow可以採用兩個操作並融合它們以提高性能。
您可能有兩個連續的添加節點,TensorFlow可以將它們融合為一個節點。 TensorFlow的XLA編譯器可以將信息用於有向非循環圖,以生成更快的代碼。因此,這是您希望使用DAG進行優化的一個方面。
但最令人興奮的部分是DAG可以遠程執行並分配給設備。這就是DAG方法的好處變得非常明顯的地方。通過使用顯式邊來表示操作之間的依賴關係,系統很容易識別可以並行執行的操作。
通過使用顯式邊來表示在操作之間流動的值,TensorFLow可以跨多個設備對程序進行分區。甚至連接到不同機器的CPU,GPU,TPU等。
TensorFlow在這些設備之間插入必要的通信和協調。圖表的幾個部分可以在不同的設備上,無論是GPU還是不同的計算機都無關緊要。因此,該模型的一個主要優點是能夠在許多機器和許多類型的機器上分配計算,因為DAG。我們只編寫Python代碼,讓TensorFlow執行系統優化和分發圖形。
會話類表示我們編寫的Python程序與C ++運行時之間的這種連接。會話對象提供對本地計算機上的設備的訪問,以及使用分發器TensorFlow運行時的遠程設備的訪問。它還緩存有關圖形的信息,因此,可以多次運行相同的計算。
們通過在tf會話上調用run來執行TensorFlow圖,當我們這樣做時,我們指定一個我們要評估的張量。因此,在這個代碼示例中,定義了兩個數據張量X和Y.它們是常量,它們是一維張量。張量Z是在X和Y上調用tf.add的結果。
當我想評估時,我在Z上調用session.run。這裡的Session是scss,是tf會話的實例,而Python中的with語句是如何我們可以確保在完成後會話自動關閉。


上一篇
[Day 12] Benefits of a Directed Graph
下一篇
[Day 14] 資料視覺化
系列文
Machine Learning Study 30天學習筆記19

尚未有邦友留言

立即登入留言