1. 程式人生 > >TensorFlow基礎入門概念

TensorFlow基礎入門概念

一.基本概念

TensorFlow是一個開源資料庫,用於使用資料流圖進行數值計算。圖中的節點表示數學運算,而圖邊表示在它們之間傳遞的多維資料陣列(張量,tensor)。

  • 圖(graph)來表示計算任務
  • 在被稱之為會話(Session)的上下文(context)中執行圖
  • tensor表示資料
  • 使用feed和fetch可以為任意的操作賦值或從其中獲取資料

圖中的一個節點稱之為op(operation),一個op可以獲得0個或多個tensor,執行計算產生0個或多個tensor(一個n維的陣列或列表),graph必須在Session中被啟動。

二.主要資料結構—-張量

  • 在tensorflow中,一個張量就是一個張量類的例項,是綁定了相關運算的一個特定型別的多維陣列。
  • 所有的張量都有一個靜態的型別和動態的維數

1.張量的階rank
階為1的張量等價為向量,2為矩陣…
2.張量的形狀shape
3.張量的資料型別type
4.建立新的張量
既可以從numpy中繼承,也可以建立
tf.convert_to_tensor:該方法將python物件轉化為tensor物件,他的輸入可是tensor物件,numpy陣列,Python列表和python標量
這裡寫圖片描述

三.TensorFlow的資料流圖

  • 符號化的表示了模型的計算是如何工作的。
  • 計算圖(computing graph)通常並不需要直接構建Graph物件,而是由使用者在建立張量(tensor)和操作(op)時自動建立的。
  • 張量建構函式(如tf.constant())將向預設的計算圖新增必要的元素
    c=tf.matmul(a,b)建立一個matmul型別的操作
    tf.Operation.type 返回操作的型別
    tf.Operation.inputs 輸入張量物件列表
    tf.Graph.get_operations() 計算圖中的操作列表
    tf.Graph.version 返回計算圖的版本資訊

四、資料供給機制Feed

  • 將feed的資料作為引數傳入run函式
    最常見:tf.placeholder()建立特點的feed操作的方法

五、變數

  • 特殊的操作,返回一個持久的、可變的張量控制代碼,存活於多次計算圖執行之中。
  • 模型的引數通常儲存於常量中,在訓練階段被更新。
    tf.Variable()
  • 所有的變數需要初始化
    tf.global_variables_initializer()

六、儲存資料流圖

協議快取(protocol buffers)
tf.Graph.as_graph_def(from_version=None,add_shapes=False):返回一個序列化的計算圖表示GraphDef。

七、執行我們的程式——會話

Session物件是執行環境的表示。
s = tf.Session().run()