無人駕駛系列——深度學習筆記:Tensorflow基本概念
隨著無人駕駛的火爆,深度學習在無人駕駛中的應用受到廣泛關注,我在工作中對此有所接觸,因此進行了相關學習和整理,給大家大家可以參考。
TensorFlow基本概念
1.TensorFlow計算模型——計算圖
Tensor:張量,可以簡單理解為多維數組
flow:流,張量間通過計算相互轉化過程
TensorFlow是一個通過
計算圖形式來描述編程的系統。每一個計算都是計算圖上的一個節點,節點之間的邊描述了計算間的依賴關係。
計算圖的使用
Tensorflow程序分為兩個階段:
定義計算圖中的所有計算
執行計算
系統會自動維護一個默認的計算圖,通過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種:
明確調用會話生成函數和關閉會話函數:
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()函數初始化所有變數
小結
計算圖是Tensorflow的計算模型,所有程序都會通過計算圖的形式展現;
計算圖每一個節點都是一個運算,計算圖的邊表示運算間的數據傳遞關係;
計算圖保存運行每個運算的設備信息(CPU?GPU)以及運算間的依賴關係;
張量是TensorFlow的數據模型,所有運算的輸入、輸出都是張量;
張量本身不存儲任何數據,只是對運算結果的引用
會話是Tensorflow的運算模型,其管理程序擁有的系統資源,所有的運算都通過會話執行