簡介
卷積之後的尺寸大小計算公式爲:
- 輸入圖片大小 W×W
- Filter大小 F×F
- 步長strides S
- padding的像素數 P
- 輸出大小爲NxN
我們可以得出
(公式1)
長寬不等時,卷積之後的計算公式也是如此,只需分別計算即可。
在實際操作時,我們還會碰到 padding的兩種方式 “SAME” 和 “VALID”,padding = “SAME”時,會在圖像的周圍填 “0”,padding = “VALID”則不需要,即 P=0。一般會選“SAME”,以來減緩圖像變小的速度,二來防止邊界信息丟失(即有些圖像邊界的信息發揮作用較少)。
注意!!!
此時可能會發現,按照這兩中方式,按照上面的公式怎麼不對呀
其實公式是沒有問題的,
- padding = “VALID”: P=0
- padding = “SAME”: kernel_size=1時,P=0;kernel_size=3時,P=1;kernel_size=5時,P=2,以此類推。
問題可能也就出在上面
tensorflow官網給出了另一種計算方式,也是正確的:
padding = “SAME”時:
( 解釋:輸入w / 步長s 之後向上取整) (公式2)
padding = “VALID”時:
(也是向上取整) (公式2)
舉例說明
當
- 輸入是5*5,
- 卷積核是3*3,
- 步長S = 2
padding= “SAME”時:
根據公式1:
根據公式2:
padding= “VALID”時:
根據公式1:
根據公式3:
編程結果
如下: