Pytorch关于池化步长为元组的探究


看了很多关于池化的文章,发现都没有谈到池化步长为元组的情况,索性自己做实验探究一番


最常见的池化,尺寸为2,步长为2,很容易理解,即把(w,h)变为(w/2,h/2),那如果是池化的尺寸为

(1, 2), 步长为(2, 1)呢?怎么理解?

首先尺寸(1,2)应该是这样的形状:

                                                                                    

步长(2,1)这应该是两个方向的步长,纵向为2(对应第一维度),横向为1(对应第二维度)

即,如果是一个尺寸为(6,8)的图,经过MaxPool2d((1, 2), stride=(2, 1))后,尺寸应变为(3,7),

input = torch.randn(1, 1, 6, 8)
m = nn.MaxPool2d((1, 2), stride=(2, 1))
output=m(input)
output.shape
Out[30]: torch.Size([1, 1, 3, 7])

 

图示如下

                            

pytorch自带的讲解如下

 - Input: :math:`(N, C, H_{in}, W_{in})`
        - Output: :math:`(N, C, H_{out}, W_{out})`, where

          .. math::
              H_{out} = \left\lfloor\frac{H_{in} + 2 * \text{padding[0]} - \text{dilation[0]}
                    \times (\text{kernel\_size[0]} - 1) - 1}{\text{stride[0]}} + 1\right\rfloor

         .. math::
              W_{out} = \left\lfloor\frac{W_{in} + 2 * \text{padding[1]} - \text{dilation[1]}
                    \times (\text{kernel\_size[1]} - 1) - 1}{\text{stride[1]}} + 1\right\rfloor

不过我是没太看懂。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值