iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 27
0
AI & Data

從零.4開始我的深度學習之旅:從 用tf.data處理資料 到 用tf.estimator或tf.keras 訓練模型系列 第 27

二、教你怎麼看source code,找到核心程式碼 ep.20:總結一下第二篇每個ep在介紹什麼

文章說明

文章分段

  1. 文章說明
  2. deeplab的簡單介紹、於我的意義 ep.1
  3. tensorflow的程式碼特色 ep.2
  4. 訓練流程的細節 ep.3
  5. 逛deeplab的github程式,順序:

 

第二篇走到現在一共花了20天的時間才差不多快講完train與處理data的程式,在這期間遍歷的程式順序已經用每個文章的連結放在每個章節的後方。

這些程式講解的順序等於實際執行時的順序

                用build_data等程式
               將資料集轉為tfrecord
                      ↓

 從一開始             對已成為              (根據參數與資料
 train.py    ➔    tfrecord的資料集     ➔     進行訓練)
引入訓練參數           進行處理

                   ↪ 將資料從tfrecord解析、
                     進行前處理
                      ↑
                     撰寫前處理程式

目前已經把「引入訓練參數」、「將資料集轉為tfrecord」、「前處理程式」這些部分講完,中間的「對tfrecord資料集進行前處理」還剩下最後一點沒有收尾。

 

前情提要

給大家回憶一下,前面花了三個ep講解的input_preprocess是由data_generator呼叫的,且是由在data_generator裡的_preprocess_image()method呼叫的。

所以呢,今天會繞回來講data_generator.py的部分。

開始吧。

 

逛deeplab的github程式 (cont.)

datasets/data_generator.py (cont.)


回憶一下,我們當初就是在碰到286行這行程式,開啟了ep.17,ep.18,ep.19的旅程,現在我們回來了,可以繼續開始正史的部分(?)。

 


接下來是都是賦值給sample這個dict,更新訓練資料。

  • 301行更新data。
  • 305行把原始影像也放入sample中,可能是想比較處理過後的影像與原影像的差別。
  • 308行是更新label。

 


這個地方告訴我們,不需要的東西就丟一丟,放下,不要帶太多沒必要的東西。訓練不需要的東西,就去掉。

 


將sample回傳。這樣_preprocess_image的處理也完成了。

 


上一篇
二、教你怎麼看source code,找到核心程式碼 ep.19:把tfrecord parse完了,接著做了哪些preprocess? 3
下一篇
二、教你怎麼看source code,找到核心程式碼 ep.21:從train.py呼叫資料集處,一路看有關處理資料的程式,終於又可以回到train.py了
系列文
從零.4開始我的深度學習之旅:從 用tf.data處理資料 到 用tf.estimator或tf.keras 訓練模型30

尚未有邦友留言

立即登入留言