logo
Loading...

Dense和Conv2D的差異是? - Cupoy

我一直以為Dense是1維的,也就是進去Dense就是要透過flatten拉成一直線可是這個練習讓我...

ml100-2,ml100-2-d68

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:34
    Jimmy
    贊同數:0
    不贊同數:0
    留言數:3

    Hi 建志!


    根據 Keras 的說明,是可以輸入 nD tensor 的,不過他只會針對最後一個維度做 Dense 

    所以你的 input_dim =  1,接上 256 個神經元,參數量的計算就是 256 個權重 + 256 (bias) 總共 512 個參數喔!

  • 2019/08/01 下午 11:28
    Jeffrey
    贊同數: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 了

    後續計算是有很大差異的