本文是在閱讀官方文檔後的一些我的理解。html
官方文檔地址:https://www.tensorflow.org/versions/r0.12/get_started/basic_usage.html#basic-usagenode
Nodes in the graph are called ops (short for operations).
An op takes zero or more Tensors, performs some computation, and produces zero or more Tensors.python
類比:一個神經元有多個輸入,一個或者多個輸出。這裏的OP能夠看做神經元,tensor能夠看做輸入的數據。數組
In TensorFlow terminology, a Tensor is a typed multi-dimensional array.
For example, you can represent a mini-batch of images as a 4-D array of floating point numbers with dimensions [batch, height, width,channels].網絡
tensor是一個數組,每一個數組元素是多維的,其實就是一個矩陣。session
TensorFlow程序一般被組織成一個構建階段和一個執行階段。在構建階段,op 的執行步驟被描述成一個圖。在執行階段,使用會話執行執行圖中的op。fetch
1.構建圖從建立op開始。有些op的建立是不須要input的,好比Constant。這樣的op被成爲源op(source op)。
2.在python中op對象是由op構造器(ops constructors)建立的。op構造器建立一個op對象時能夠傳遞一個源op做爲待構造op對象的輸入。
3.op對象被op構造器建立後是做爲一個node加入到graph中的。TensorFlow Python 庫有一個默認圖 (default graph), op 構造器能夠爲其增長節點。這個默認圖對許多程序來講已經足夠用了。spa
總結:由於graph是由op對象組成的,因此構建圖的過程其實就是建立op對象的過程,以及若是將這些個op對象鏈接起來(好比某個op對象做爲另外某個op對象的輸入)的過程。orm
1.由於graph須要在session中啓動。因此爲了啓動一個graph,第一步就是建立session對象。
2.sessoin對象建立的時候若是不制定graph,則使用默認圖(default graph)。htm
變量用於維護圖執行過程當中的狀態信息。
一般會將一個統計模型中的參數表示爲一組變量。 例如, 你能夠將一個神經網絡的權重做爲一個tensor存儲在某個變量中。在訓練過程當中, 經過重複運行訓練圖,更新這個 tensor。
能夠爲任意的op賦值或者從其中獲取數據。
tensor存儲在Constants或者Variables。就像數據能夠放在常量和變量中同樣。放在變量中的數據是能夠修改的,放在常量中的數據是不能夠修改的。
常量op也算是op吧,只是比較簡單而已。