看板 DataScience 關於我們 聯絡資訊
作業系統: win10 問題類別: DL 使用工具: Keras in TF2 問題內容: 嘗試建一個autoencoder 來reconstruct輸入的影像,結果ouput 出來幾乎都是0,224個 channels 裡只有兩個不是全0的影像,那兩個不是全0的影像也完全不像輸入的影像,就 兩個亮點。把每一層輸出抓出來看,發現有幾層的feature map全部都是0,其他層約有55 %的 feature map全部都是0。google不太到類似經驗,希望來板上取得靈感Q_Q model訓練好後希望看每層feature map長怎樣,尤其是想看哪些channel沒什麼貢獻,所 以想保留影像的shape。 input: 從大張的影像隨機切36x36x224的植物影像,其中224個channels 都是從0-1,代表反射率 ,大部分的pixel 值小於0.5,因為想保留物理意義且全部的值都在0-1之間所以沒額外做 normalization。validation 跟testing 時用固定的影像。 model1: eocoder decoder各三層,encoder三層都用keras的conv2D,filter數量都是224,kernel size都是3,stride都是1,activation function 都是relu,padding=same。decoder就 把conv2Dtranspose 回來。 loss function 是mse model2: 一樣架構,但把activation function 換成leakyrelu,最後一層的activation function 換成tanh(我看李宏毅老師的作業這樣改我就無腦跟著改) model3: 一樣架構,鑒於model2也失敗,覺得leakyrelu可能沒差,於是改回relu。仔細想了一下t anh的ouput是-1到1,但影像都是0-1,所以最後一層改用sigmoid,還是失敗。 訓練參數: learning rate 0.001, 0.01, 0.05, 0.1(試了四組都train不起來) optimization Adam epoch 3以後每個epoch的validation loss都一樣,代表model大概沒在動。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 98.223.102.101 (美國) ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1661291830.A.5D3.html
yoyololicon: loss curve貼一下 08/24 15:34
yoyololicon: 你stride都1這樣沒降維吧 autoencode的目的是? 08/24 15:38
我想看有沒有channel 會被autoencoder drop掉,然後想看model對不同波段做了什麼事
yoyololicon: 雖然你遇到的問題可能跟架構也沒什麼關係08/24 15:39
yoyololicon: 應該寫錯code(?08/24 15:39
code是公司ml工程師寫的,我改了一點以後兩個一起檢查過了應該沒問題。
chang1248w: 怎麼樣把一張圖片切出36*36*224的...東西08/24 18:20
chang1248w: 我參不透08/24 18:20
我們的相機是特殊的相機,本身就有224個波段,我只是切個36x36pixel下來
chang1248w: 你貼個preprocessing 和model implement 的code好不08/24 18:21
chang1248w: 有時候實現出來不完全是你想的那樣08/24 18:21
--- 因為資料是美國管制資料所以我不能拍照也不能截圖QQ ※ 編輯: NDEJG (98.223.102.101 美國), 08/24/2022 21:51:18
chang1248w: 大致了解08/24 23:00
chang1248w: autoencoder會train成什麼形狀,取決於你給他的訓練08/24 23:05
chang1248w: 任務,我們通常會移植其中的一部分來做其他的事情,08/24 23:05
chang1248w: 諸如分類和生成圖像08/24 23:05
chang1248w: code看也不好說什麼了08/24 23:11
chang1248w: 你先用原本會變瘦的版本試試吧08/24 23:44
更新: 把最後一層activation function 改成linear就有不錯成果了,另外我誤會keras conv2D 做的事了,即使filter size跟channels 一樣多每個filter也還是從多個channel去取fea ture ,不過從每層feature看來有一部分的feature map還是全部都0,filter數量應該夠 ,有錯請指正 ※ 編輯: NDEJG (128.210.107.88 美國), 08/25/2022 00:53:04
chang1248w: 全零大概就是被relu吸收掉的那些樣本 08/25 09:42
chang1248w: 你想找的應該是depthwise conv 08/25 09:43
chang1248w: 沒有bottle neck structure 那你的autoencoder 最佳 08/25 09:45
chang1248w: 解自然就是identity transform 08/25 09:45