1 給我背住
【卷積計算公式】
【反捲積計算公式】
【其實只用記住卷積的計算公式就行了,反捲積的可以從卷積中的推導出來】
2 爲什麼是這樣算
2.1 卷積
其實晚上很多都是僅僅告訴你,計算公式是:
這裏簡單的來講解一下爲什麼。
【】這個就是原來的圖片,外面加了一圈padding,因爲padding是一圈,所以左右、上下都有,所以是兩倍的。
【】是計算,這個要走多少步。來舉個例子就好理解了:
圖中是input爲7,然後kernel_size爲3,podding是1的一個例子。
從下圖中可以看出來,kernel總共要走6步
這個六步,就是
的含義,kernel要滑動的步數。
那麼stride就是步長,如果是2的話,那麼kernel移動就是這樣的(如下圖):
就變成3步了。那麼爲什麼計算公式最後還要加上1呢?就是在kernel還沒有邁出步子的時候,最開始的處於左上角的那個位置,也是一個點。
【總結:卷積輸出尺寸計算的時候,前面的分式,就是計算卷積核可以走幾步,然後再加上卷積核的初始位置,就是輸出尺寸了】
來看個正經的例子:
【這個例子展示了,如果輸入尺寸是一個偶數,卷積核是奇數的情況,如何計算——向下取整】
2.2 反捲積
其實反捲積就是另外一種形式的卷積。
反捲積中,stride就是在相鄰元素之間添加stride-1個0元素
從圖中可以看到,假設輸入圖片是3*3的,假設反捲積的stride爲2,那麼輸入圖像其實就是5*5的。
所以,實際的輸入圖像應該是:
剩下的內容就和之前一樣了,執行卷積的過程,不過反捲積的stride是用在擴展輸入圖像上的,而不是kernel移動的步長,所以反捲積中kernel步長永遠是1.
所以計算公式如下:
帶入得到:
【總結:反捲積中,就是先擴展輸入input的尺寸,然後再去卷積】
2.3 兩個例題
輸入尺寸input=2,kernel_size=3,stride=1,padding=2,計算反捲積的輸出尺寸?
【答案:output=4】
輸入尺寸input=3,kernel=3,stride=2,padding=1,計算反捲積的輸出尺寸?
【答案:output=5】
喜歡的話,加個關注唄!
公衆號回覆【下載】還有持續更新的免費的精選機器學習資料哦~