Re: [問題] 深度學習 數據怎麼進入input層(keras)

看板Python作者 (飛行原理)時間6年前 (2019/04/21 00:54), 編輯推噓2(200)
留言2則, 2人參與, 6年前最新討論串2/2 (看更多)
※ 引述《wavek (壞貓咪)》之銘言: : 假設今天我的數據是一百張CIFAR10的圖片 : 32 * 32 color RGB, 10 classes : 我的架構如下, 當然重點其實只在我的Input layer有四個節點 : https://imgur.com/EOYvM4z
: 那我的數據會怎麼樣進入輸入層??? : (1) : 100張圖片分成四份 : 每個節點有25張圖片進入 : (2) : 每個節點都會有完整的100張圖片進入 : (3) : 100張圖片 : 每張圖片會被分成四等分 : 然後每一等分分別進入不同的節點 : (4) : 還有聽到個說法 : 沒有所謂的輸入層 : 那個只是視覺化表現比較方便 : 阿 那數據是怎麼輸入的XD : 還是是其他方式, 有大神可以平易近人的說明嗎QQ 在極度特殊的情況下, 如果你能發現輸入資料潛在的特徵, 可以利用 特定四個點的某個顏色的值, 例如照片四個角落的紅色值, 做為輸入 層的四個節點, 就能達到令人滿意的辨識度(比方說測試樣本的正確率 >95%), 那麼輸入層只有4個節點為何不可以呢? 只是, CIFAR10照片集並不是極度特殊的情況, 所以輸入層只有4個節 點, 很難透過多個多節點隱藏層來獲得一般人能夠接受的正確辨識率. 因此, 建議剛開始嘗試Keras時, 仍然以每個點的RGB值, 總共32*32*3 =3072節點放在輸入層, 較能得到不錯的辨識正確率. 之後, 你就可 嘗試減少輸入層節點數, 例如只取奇數列的32個點, 於是輸入層只剩 16(列)*32(欄)*3(色)=1536個節點, 或是進一步把RGB三色用灰階來表 示, 於是輸入層只剩16(列)*32(欄)*1(色)=512個節點. 其實, 對於照片或影像這種二維空間的資料, 使用CNN可能是更好的做 法. 所以, 輸入層不會是排成一維的I個節點, 而是二維J*K=I個節點. 處理完CNN後, 才會把CNN的二維輸出層扁平化, 變成一維的輸入層, 再經過多個多節點隱藏層直到輸出層(例如CIFAR10的十個分類就有10 個輸出層節點). 所以, 假如你在CNN不斷萃取之後, 輸出層就是只剩 4個節點, 那麼扁平化之後, 輸入層當然也是只有4個節點. 這又是另 外一種情況, 與前面所述照片未經CNN處理, 直接拿四個角落的紅色值 當輸入層完全不同. 你若瞭解CNN就會知道我的意思. 總之, Keras是一個不錯的工具, 初學者很容易上手, 但要真正熟悉 Keras, 還是需要多多嘗試各種網路架構的組合(例如不要扁平化的全 CNN), 才能更加清楚深度學習的奧妙. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.66.155 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1555779285.A.1FE.html

04/22 00:23, 6年前 , 1F
04/22 00:23, 1F

04/22 10:37, 6年前 , 2F
推,以後說不定可以用到
04/22 10:37, 2F
文章代碼(AID): #1SkqxL7- (Python)
文章代碼(AID): #1SkqxL7- (Python)