數(shù)據(jù)流
數(shù)據(jù)流是一種用于并行計算的常用編程模型。數(shù)據(jù)流圖中味混,節(jié)點(Node)表示計算單元(OP),邊(Edge)表示計算使用或產(chǎn)生的數(shù)據(jù)(Tensor)。
數(shù)據(jù)流為TensorFlow提供多項優(yōu)勢:
- 并行處理:使用明確的Edge來表示Node之間的依賴關(guān)系论矾,系統(tǒng)可以識別能夠并行執(zhí)行的操作。
- 分布式執(zhí)行:使用明確的邊緣表示操作之間流動的值杆勇,TensorFlow可以將程序劃分到連接至不同機器的多臺設備上(CPU/GPU/TPU),TensorFlow在這些設備間進行必要的通信和協(xié)調(diào)贪壳。
- 編譯:XLA編譯器生成更快的代碼。
- 可移植性:不依賴語言蚜退。比如可以使用Python構(gòu)建數(shù)據(jù)流圖闰靴,將其存儲在SaveModel中彪笼,然后使用C++程序進行恢復。
tf.Graph
tf.Graph包含兩類信息:
- 圖結(jié)構(gòu):圖的節(jié)點和邊
-
圖集合:TensorFlow提供的一種在tf.Graph中存儲元數(shù)據(jù)集合的通用機制蚂且。例如配猫,當你創(chuàng)建tf.Variable時,系統(tǒng)默認將其添加到表示“全局變量”和“可訓練變量”的集合中杏死,當你后續(xù)創(chuàng)建tf.train.Saver或tf.train.Optimizer時泵肄,這些集合中的變量將用作默認參數(shù)。
....待補充...