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()。
後續明天講。