iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 7
1
AI & Data

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

二、教你怎麼看source code,找到核心程式碼(e.g. DeepLab)

文章說明

開啟新的篇章,第二篇會想說這個主題的原因是,我自己在找原始碼的時候,其實跌跌撞撞蠻久的,後來我找到了比較適合自己的方式去挖掘程式碼,於是想跟大家分享。

 

我接下來會分成下面去3段去講述,第一個不免俗的要稍微介紹一下deeplab是什麼,如果是詳細的論文講解,我會放在medium,而且使用的atrous convolution並不是什麼新潮的東西,去修了數位訊號處理(DSP)才發現是舊瓶翻新,物盡其用。

但是它有一定的效果,而且他在實作上面有做出來,也有API支援,所以絕對是經典的segmentation task的入手文章。

 

文章分段

  1. 文章說明
  2. deeplab的簡單介紹、於我的意義
  3. 再次說明訓練流程,model部分分成backbone(extractor)與model
  4. 逛deeplab的github程式,順序:train.py model.py datasets/data_generator.py …

 

Deeplab是?

我打這段的時候沒有經過求證,不要盡信。

Deeplab應該算是tensorflow底下的一個團隊,研究有關segmentation的任務要如何進行,到2020為止,一共發了4篇paper,每一篇都是基於前一篇再加以創新以及驗證,目前改變跨度較大的是從第2篇轉到第3篇,第3篇的論文中捨棄了之前的後處理方式,

事實上在source code的實作中,也並沒有有把後處理的程式實作出來,我去翻程式碼的時候發現的。

並把網路架構大幅變動,改以encoder-decoder的方式去做處理。

 

atrous convolution,在我的理解上來看,就很像對著一張圖像去做各種尺度的觀察。例如一張人像圖,在atrous rate較大的情況,我們所獲取的影像資訊就比較廣泛,很像是看著個人高矮胖瘦、衣服大概穿怎樣顏色的,還有身體形態;

atrous rate較小去做卷積的情況,所獲取的影像資訊相對起來就會比較局部,或著說detail一點,像是看到這個人的臉長怎樣、特定的動作等等。

 

於我的意義

算是我第一篇看得很仔細,然後去報的paper吧,然後遲鈍如我,在幾次報paper之後才領悟到,在學校報paper跟在公司中報paper的方式會不太一樣呢!

 

在學校做研究生剛開始報paper時,因為同時會報給同為白紙的同學們聽,因此往往需要從頭開始,由深入淺的說明。

而在公司,因為同個部門的人,都已經在領域打滾久了,其實不需要從頭到尾講得很清楚,除非是多篇paper一起比較,不然只要把看到的方法的優點、缺點、還有實作的可能性啦、實作結果等彙整後報告就可以了吧。

 


今天的狀態沒有很好,所以容許我把短小的篇章,灌水成兩天的份~

如果想了解甚麼與我說的相關,但是我又沒有提得很仔細的話,可以在下方留言,我會考慮找時間補齊,也請鼓勵支持我繼續寫下去,30天真的好漫長啊!


上一篇
一、用skeleton code解釋tensorflow model程式執行方式(tf.keras) ep.5:解釋train.py
下一篇
二、教你怎麼看source code,找到核心程式碼 ep.2:程式碼挖寶記
系列文
從零.4開始我的深度學習之旅:從 用tf.data處理資料 到 用tf.estimator或tf.keras 訓練模型30

尚未有邦友留言

立即登入留言