cnn stride and padding_CNN中的stride、kernel、padding计算
生活随笔
收集整理的這篇文章主要介紹了
cnn stride and padding_CNN中的stride、kernel、padding计算
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在卷積網(wǎng)絡(luò)搭建過程中,遇到了一個(gè)困惑,那就是如何根據(jù)卷積的一些超參數(shù)來計(jì)算網(wǎng)絡(luò)的輸出的大小,即卷積尺寸變化
為了使得計(jì)算過程更加直觀,定義以下參數(shù)
定義
定義
定義
輸入尺寸為
輸出尺寸為
則有卷積尺寸變化為
例如,輸入為
,卷積核為 ,步長(zhǎng) , ,由以上公式可以得出新的輸出為 輸出任然為28不變但是肯定會(huì)有不能被整除的狀況,在PyTorch中可以看到
池化類似
Shape:- Input: :math:`(N, C, H_{in}, W_{in})`- Output: :math:`(N, C, H_{out}, W_{out})`, where.. math::H_{out} = leftlfloorfrac{H_{in} + 2 * text{padding[0]} - text{dilation[0]}times (text{kernel_size[0]} - 1) - 1}{text{stride[0]}} + 1rightrfloor.. math::W_{out} = leftlfloorfrac{W_{in} + 2 * text{padding[1]} - text{dilation[1]}times (text{kernel_size[1]} - 1) - 1}{text{stride[1]}} + 1rightrfloor在PyTorch中對(duì)于不能整除的狀況默認(rèn)均為向下取整,可以選擇向上取整
肯定有小伙伴在困惑,這些參數(shù)有什么意義嘛,剛開始看到這個(gè)公式的時(shí)候我也有這樣的困惑,但是后來和實(shí)驗(yàn)室?guī)熜纸涣髋?#xff0c;如果我們需要設(shè)定指定大小的輸入輸出,那么中間的超參數(shù)的設(shè)置就很有意義了。
例如輸入為
,采用的是 的卷積核,常規(guī)卷積的步長(zhǎng) ,為了保證輸出也為,那么就需要設(shè)置填充;如果卷積核是 ,那么為了保證輸出也為 ,則需要設(shè)置填充。具體的計(jì)算任然參照上面的公式。總結(jié)
以上是生活随笔為你收集整理的cnn stride and padding_CNN中的stride、kernel、padding计算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c类网络使用子网掩码有无实际意义_弄懂I
- 下一篇: python如何安装matplotlib