無人駕駛系列——深度學習筆記:Tensorflow基本概念

隨著無人駕駛的火爆,深度學習在無人駕駛中的應用受到廣泛關注,我在工作中對此有所接觸,因此進行了相關學習和整理,給大家大家可以參考。

TensorFlow深度學習框架

TensorFlow基本概念

1.TensorFlow計算模型——計算圖

  • Tensor:張量,可以簡單理解為多維數組

  • flow:流,張量間通過計算相互轉化過程

  • TensorFlow是一個通過

    計算圖

    形式來描述編程的系統。每一個計算都是計算圖上的一個節點,節點之間的邊描述了計算間的依賴關係。

計算圖的使用

Tensorflow程序分為兩個階段:

  1. 定義計算圖中的所有計算

  2. 執行計算

系統會自動維護一個默認的計算圖,通過tf.get_default_graph函數獲取當前默認的計算圖

Advertisements

2.TensorFlow數據模型——張量

張量是Tensorflow管理數據的形式,功能上可以理解為多維數組。

  • 0階張量:標量(scalar)也就是一個數

  • 第一階張量:向量(vector),也就是一維數組

  • 第n階張量:n維數組。

張量中並未保存真正的數組,其保存如何計算這些數字的計算過程。例如:

一個張量主要保存3個屬性:

  • 名字(name):一個張量的唯一標識,同時給出張量如何計算的。通過

    node:src_output

    形式給出。node為節點名稱,srcoutput為當前張量來為節點的第幾個輸出。例如:add:0表示result張量是計算節點add輸出的第一個結果

  • 維度(shape):shape=(2,)說明以為數組,數組長度為2

    Advertisements

  • 類型(type):每個張量會有唯一的類型

3.TensorFlow運行模型——會話

TensorFlow通過會話(Session)的方式執行定義好的運算,擁有並管理運行時的所有資源。 會話使用模式2種:

  1. 明確調用會話生成函數和關閉會話函數:

2.通過上下文管理器使用會話:

Tensorflow不會自動生成默認會話,需要手動指定

sess = tf.Session()with sess.as_default(): print(result.eval()

tf.Tensor.eval()函數計算一個張量的取值

4.神經網路參數和Tensorflow變數

tf.Variable(): 保存和更新網路中的參數

weights = tf.Variable(tf.random_normal([2,3], stddev=2)) 生成2x3矩陣,元素是均值為0,標準差為2的隨機數

  • TensorFlow隨機數生成函數

  • TensorFlow常數生成函數

tf.initialize_all_variables()函數初始化所有變數

小結

  1. 計算圖是Tensorflow的計算模型,所有程序都會通過計算圖的形式展現;

  2. 計算圖每一個節點都是一個運算,計算圖的邊表示運算間的數據傳遞關係;

  3. 計算圖保存運行每個運算的設備信息(CPU?GPU)以及運算間的依賴關係;

  4. 張量是TensorFlow的數據模型,所有運算的輸入、輸出都是張量;

  5. 張量本身不存儲任何數據,只是對運算結果的引用

  6. 會話是Tensorflow的運算模型,其管理程序擁有的系統資源,所有的運算都通過會話執行

Advertisements

你可能會喜歡