理解卷積神經網絡中的channel


在一般的深度學習框架的 conv2d 中,如 tensorflowmxnetchannel 都是必填的一個參數

 

tensorflow 中,對於輸入樣本中 channels 的含義,一般是RGB圖片,channels的數量是3(R、G、B)。而灰度圖是的channels是1;

mxnet 中,一般channels的含義是:每個卷積層中卷積核的數量。

 

為了更好的理解,下面舉個例子。圖片來自 吳恩達老師的深度學習課程 

假設有一個 6x6x3的圖片樣本,使用 3x3x3的卷積核。此時輸入的 channels 為3。而卷積核中的 in_channels 與需要進行卷積操作的數據channels一致

卷積:27個數字分別與樣本對應相乘,在進行求和,得到第一個結果。依次進行,最終得到 4x4 的結果

由於只有一個卷積核,最終得到的結果是 4x4x1,out_channels為1

在實際應用中,都會使用多個卷積核。這里如果再加一個卷積核,就會得到 4x4x2 的結果

總結一下,把上面提到的channels分為三種:

  1. 最初圖片的輸入樣本channels,取決於圖片類型,比如RGB;

  2. 卷積操作完成后輸出的 out_channels,取決於卷積核的數量。此時的 out_channels 也會作為下一次卷積時的 in_channels;

  3. 卷積核中的 in_channels,剛剛2中已經說了,就是上一次卷積的out_channels,如果是第一次做卷積,就是1中樣本圖片的 channels

其實在CNN中,搞清楚每一層的傳遞關系,主要就是heightwidth的變化情況,以及 channels 的變化情況

在看看 tensorflowtf.nn.conv2dinputfilter 這兩個參數

input : [batch,in_height,in_width,in_channels]

filter : [filter_height,filter_width,in_channels,out_channels]

 

參考地址:

https://blog.csdn.net/sscc_learning/article/details/79814146

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM