執行tf.convert_to_tensor()時,究竟發生了什麼?
最近在看別人TensorFlow的代碼,總想弄明白「這句命令什麼時候執行,執行之後發生了什麼」,特別是讀取數據的時候。今天弄明白了tf.convert_to_tensor()執行的時候發生了什麼,在這裡做一下筆記。
先看代碼:
self.image_list, self.label_list = read_labeled_image_list(self.data_dir, self.data_list)n self.images = tf.convert_to_tensor(self.image_list, dtype=tf.string)n self.labels = tf.convert_to_tensor(self.label_list, dtype=tf.string)n
這裡的read_labeled_image_list是用來讀取圖像和標籤的路徑的,返回兩個list。
打上斷點,看這兩句話執行之後的效果。
tf.convert_to_tensor()執行後返回一個Tensor,問題是,這個Tensor是什麼樣子的?
在TF的Graph中,Tensor是邊,Op是點,TensorFlow將Tensor與對應的Op的關係描述為「The Operation that produces this tensor as an output.」
我們可以看到這個Tensor的Op是誰:
name: "create_inputs/Const"nop: "Const"nattr {n key: "dtype"n value {n type: DT_STRINGn }n}nattr {n key: "value"n value {n tensor {n dtype: DT_STRINGn tensor_shape {n dim {n size: 5598n }n }n string_val: "00000.png"n string_val: "00001.png"n string_val: "00002.png"n ……n }n }n}n
可以看到執行完這兩條語句之後,當前的Graph上多出來兩個Op:
綜上所述,執行tf.convert_to_tensor()的時候,在圖上生成了一個Op,Op中保存了傳入參數的數據。
推薦閱讀:
※1.4 卷積神經網路初探
※深入淺出Tensorflow(一):深度學習及TensorFlow簡介
※Deep Learning的IR「之爭」
※Tensorflow源碼解讀(一):AttentionnSeq2Seq模型
※深入淺出Tensorflow(四):卷積神經網路
TAG:TensorFlow |