ep.13開始解釋datasets/data_generator.py
這份程式,這份程式的主要功能是利用寫好的一個叫做Dataset的class,解析之前用build_DATASET_data.py
產生的tfrecord,並把解析完成的資料,存在tf.data.TFRecordDataset格式的變數裡,傳回去train.py
供訓練使用。
解析的步驟主要有兩個。
今天要開始講的就是這份程式是怎麼去達成上面兩個步驟。
開始吧。
datasets/data_generator.py
(cont.)
總而言之,使用這個method會得到一個字串,意義不明:D。
在train.py的程式裡,有呼叫116行的Dataset,然後這個class的初始值在119-135行。上圖是原始碼,下圖是我把當時train.py在呼叫時,對應使用的argument與預設值,寫在一起的對照圖,#
後方是argument,=
後面則是參數的預設值。
其中有4個參數在我去找的時候,發現在data_generator.py
沒有宣告到這些參數,但tensorflow團隊不是我,不可能犯這種低級錯誤,於是我去common.py
裡找,還真的找到這幾個參數。
原來tf.app.flags的參數是可以分開檔案寫的。
接著是Dataset這個class的參數說明,我先放在這邊,等底下程式用到參數後再一一解釋。
dataset_name
把對應dataset的split與對應size的資料,存入splits_to_sizes
這個變數。一般來說,的確是要讓程式可以選擇要不要用backbone才比較合理吧。
*train.py
接著就是把剩餘的attribute都設定設定,這樣train.py那裡,一個是Dataset
這個class產生的object的dataset
,就產生完畢。
*train.py
接著,train.py就呼叫了class的methodget_one_shot_iterator()
。
後續明天講。