Dense和Conv2D的差異是?
2019/07/30 下午 11:21
機器學習共學討論版
JJLai
觀看數:179
回答數:3
收藏數:0
ml100-2
ml100-2-d68
我一直以為Dense是1維的,也就是進去Dense就是要透過flatten拉成一直線
可是這個練習讓我發現,Dense也是可以直接輸入有長寬的圖片
可是這樣我就看不懂了,拉成一直線,參數量應該是28*28*256吧?可是現在第一層的參數就只有512,所以它的計算方式是什麼?
回答列表
-
2019/07/31 上午 11:34Jimmy贊同數:0不贊同數:0留言數:3
Hi 建志!
根據 Keras 的說明,是可以輸入 nD tensor 的,不過他只會針對最後一個維度做 Dense
所以你的 input_dim = 1,接上 256 個神經元,參數量的計算就是 256 個權重 + 256 (bias) 總共 512 個參數喔!
-
2019/08/01 下午 11:28Jeffrey贊同數:0不贊同數:0留言數:2
-
2019/08/06 上午 11:36陳明佑 (Ming You Chen)贊同數:0不贊同數:1留言數:1
回覆上面同學的問題:
A1.
不對喔, Conv1D/2D/3D, 講的主要就是他的 mask / filter 形狀會是 1D/2D/3D 的, 而且是資料上就有所不同, 例如 Conv1D 用在時間序列預測(如股票), 而 Conv3D 用在動作擷取(影片中,時間軸是第三維), 至於影像的RGB三層, 用的仍舊只是 Conv2D, 因為 Conv 後面只要 filter 數量為 k, 計算結果就會有一個厚度 k, RGB 只是讓第一輪的輸入就是厚度 3 而已
A2.
這個問題不錯, 確實初學是會容易搞混, 請參考下列圖型 ( 可參考原始回答連結 )
簡單的說 : 上一層如果是卷積, 厚度為 k
直接Dense, 那麼厚度仍保持 k 不變, 如果是經過 Flatten, 厚度就只剩下 1 了
後續計算是有很大差異的