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