計算圖的構建
Tensorflow首先定義計算(計算圖),也就是變量相乘,相加,相加,相減(矩陣,向量,標量)
定義好計算后,Tensorflow會自動把計算規則變成計算圖.
不同計算圖的變量和運算不會共享
同一個Tensroflow程序中,計算圖可以有很多,不同計算圖中的變量和計算是獨立的,所以可以分開為多個硬件進行計算
計算圖中的節點就是分支,只要有輸入和輸出就是節點.
Tensorflow數據結構(張量)
張量是Tensorflow管理數據的形式.Tensorflow的所有數據都是通過張量的形式來表示的.
從功能角度來看:張量可以被簡單理解為n維數組
0維數組:標量
1維數組:向量
n維數組:矩陣(一個數組里面有n個數組元素)
張量在Tensorflow中與Java中的基本數據類型不一樣,不能直接打印出來,也就是不能通過print()得到結果,而是一個引用,類似與Java自定義的對象,打印出來得到對象的引用,必須去獲取張量對象的參數和方法.
一個張量主要有三個屬性:名字(name),維度(shape),類型(type)
張量的用途有兩種:
1.構造計算圖時,可以預設保存中間結果的引用
2.計算圖構造完成后,可以獲取任意節點的數據(通過session)來完成
Tesorflow執行命令(運行對話)
session任務擁有并管理Tensorflow程序運行時的所有資源,當所有計算節點都完成后,關閉任務幫助系統回收資源,否則就可能出現資源泄漏的問題.
如果出現異常無法執行下去,利用withtf.Session() as sess:上下文機制命令,可以防止異常退出然后沒有關閉上下文,沒有釋放資源,導致資源泄漏.
與java和python一樣,運行了如果不去提取變量(張量)本身代表的數據,是不會顯示出來的,必須通過tf.Tensor.eval函數來提取張量的取值.
參考文獻:
1.鄭澤宇,顧思宇.2017.Tensorflow實戰google深度學習框架,電子工業出版社:283頁.
2.