Saya mencari penjelasan yang bagus tentang bagaimana konvolusi dalam pembelajaran mendalam bekerja ketika diterapkan pada gambar multi-channel. Sebagai contoh, katakanlah saya memiliki gambar 100 x 100 piksel dengan tiga saluran, RGB. Input tensor kemudian memiliki dimensi 100 x 100 x 3.
Jika saya menerapkan konvolusi dengan N filter dan satu langkah, akan menjadi dimensi output:
100 x 100 x 3 x N?
atau
100 x 100 x N?
Dengan kata lain, apakah konvolusi yang diterapkan "meratakan" gambar, atau apakah konvolusi diterapkan pada saluran berdasarkan saluran?
sumber
Itu tergantung pada jumlah filter yang Anda pilih. katakanlah Anda telah memilih 64 filter.
tensor berat Anda akan berbentuk [3, 3, 3, 64] (3 ke 3 adalah jumlah saluran di lapisan input dan 64 adalah jumlah saluran di lapisan keluaran) dan bentuk tensor bias [64]
output akan menjadi jika Pad = "SAMA" dan melangkah 1 untuk gambar input 224 * 224 * 3 = 224 * 224 * 64
output akan menjadi jika Pad = "Valid" dan melangkah 1 untuk gambar input 224 * 224 * 3 = 221 * 221 * 64
Sekarang dengan input 221 * 221 * 64 jika Anda ingin membuat 128 filter pada layer berikutnya, bentuk vektor bobot Anda adalah [3, 3, 64, 128] dan - bias bentuk vecotr adalah [128]
dan bentuk keluaran - jika Pad = "SAMA" [221, 221, 128] - jika Pad = "VALID" [198, 198, 128] sedang mempertimbangkan stride = [1,1,1,1]
Anda dapat memeriksa hasil ini sambil membangun grafik menggunakan layername.get_shape ().
sumber
Dimensi keluaran konvolusi dalam pembelajaran mendalam tergantung pada banyak faktor
Ketergantungan yang paling sederhana adalah pada jumlah filter
N
. Ini memberi Anda jumlah peta fitur yang memiliki output Anda. Untuk input yang mungkin berupa saluran RGB yaitu 3, untuk output nomor ini dapat dipilih secara bebas.Faktor berikutnya adalah zero-padding. Jika Anda menggunakan ukuran filter (3,3) dan padding "valid" yaitu menambahkan NO nol di sekitar gambar Anda berakhir dengan output dimensi.
Karena Anda menggunakan langkah 1. Jika Anda memindahkan filter melintasi gambar di akhir gambar di setiap arah, filter akan mengenai batas setelah 98 langkah.
Namun, jika Anda menggunakan lapisan "SAMA" Anda mengimbangi ukuran filter -dalam kasus ukuran filter (3,3) yang akan sesuai dengan satu baris nol di sekitar gambar- Anda akan berakhir dengan:
Dengan langkah 2 misalnya Anda menggeser posisi filter dengan dua piksel. Karena itu, Anda dapatkan
sumber
Tiga saluran RGB dililit oleh kernel yang berbeda dan ditambahkan di setiap peta fitur. Jadi, Anda akan memiliki 100 x 100 x N sebagai output lapisan pertama.
sumber