tensorflow框架內部也有int, float, string等資料型別,但是直接將python中的資料型別與tensorflow中的資料型別進行運算是行不通的。只能是先將python中的資料轉換為tensorflow中的資料型別,由tensorflow計算出結果後,再從tensorflow圖中取出來。接下來我們以矩陣運算為例體驗python物件資料傳入圖中後,再將圖的計算結果取出來的過程,**如下:
import tensorflow as tf
# 定義python中int型別二維矩陣
a = [[1, 2, 3],
[4, 5, 6]]
b = [[1, 1], [1, 1], [1, 1]]
# 將python型別資料a和b傳入圖中
a_tf = tf.constant(a, dtype=tf.float32, name="a")
b_tf = tf.constant(b, dtype=tf.float32, name="b")
# 構建圖中的計算節點
c_tf = tf.matmul(a_tf, b_tf)
print(c_tf)
輸出:
tf.tensor(
[[ 6. 6.]
[15. 15.]], shape=(2, 2), dtype=float32)
上面**中,3-5行為定義python中型別為int的二維陣列a和b。第8-9行是將python資料型別的資料傳入tensorflow圖中;第12行是在tensorflow圖中建立乙個計算節點,這個計算節點的輸入是tensorflow圖中的a_tf和b_tf。到第12行為止,圖構建完畢,但是要注意,當前還沒有真正執行矩陣運算,只是在圖中把矩陣運算的輸入和矩陣計算定義完成。
真正開始執行是最後一行,在這一行中,是從圖中取出c_tf資料。這要從tensorflow的內部機制說起,在tensorflow中,一切資料節點都是tensor物件,如a_tf和b_tf分別是tensorflow圖中的tensor物件,c_tf也是tensorflow圖中的tensor物件。
現在要將c_tf這個tensor物件從圖中取出,tensorflow框架會自動尋找所有葉子節點到c_tf的路徑,並把路徑中所有的計算節點(即本例中的矩陣計算)都執行,直到計算結束,即得到c_tf結果。如下圖所示。這也正是tensorflow框架的命名來歷,即tensor+flow.
遞迴計算過程和迭代計算過程
這次主要想通過幾個sicp的題目來說明遞迴計算過程和迭代計算過程。1 階乘 遞迴計算過程 define factorial n if n 1 1 factorial n 1 n 迭代計算過程 define fact iter counter result if counter 1 result fa...
PinBlock計算過程
引數 密碼,賬號,leftpinkey,rightpinkey out data 該引數為了帶出計算出來的pinblock 1先將密碼轉換為bcd碼 注意,轉碼後長度會變化,eg ascii碼的6位密碼轉成bcd碼後會縮短 放入pinblock定義好的16個長度的空字元陣列中 2再將賬號轉換為bcd...
Tensorflow之計算tensor平均值
tf.reduce mean input tensor,axis none,keep dims false,name none,reduction indices none 計算tensor中各個維度上元素的平均值.在給定維度axis上進行刪減.keep dims被設定為false的話,原始變數的維...