带dilation的卷积输出尺寸计算公式(附代码)

带dilation的卷积输出尺寸计算公式

K ′ = k e r n e l + ( k e r n e l − 1 ) ⋅ ( d i l a t i o n − 1 ) K'=kernel+(kernel-1)\cdot(dilation-1) K=kernel+(kernel1)(dilation1)
W o u t = w i n − K ′ + 2 p a d d i n g s t r i d e + 1 W_{out}=\frac{w_{in}-K'+2padding}{stride}+1 Wout=stridewinK+2padding+1

举例

# -*- coding: utf-8 -*-
import torch
import torch.nn as nn


def default_conv(in_channels,out_channels,kernel_size,stride,padding,dilation,bias=True):
    return nn.Conv2d(in_channels = in_channels,
                     out_channels = out_channels,
                     kernel_size = kernel_size, #  3
                     stride = stride,           #  1
                     padding = padding,         #  5
                     dilation = dilation,       #  5
                     bias=bias)
    
class ShizuoNet(nn.Module):
    def __init__(self, conv=default_conv,n_feats=32):
        super(ShizuoNet,self).__init__()

        self.convA = conv(1,32,3,1,5,5)
        
    def forward(self,x):
        print(x.shape)
        y = self.convA(x) # torch.Size([2, 1, 80, 80])
        print(y.shape)   # torch.Size([2, 32, 80, 80])
        return y
    
    
def main():
    net = ShizuoNet()
    from torchsummary import summary    
    summary(net, (1, 80, 80))    
        
if __name__ == "__main__":
    main() 
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值