2023.2.8跟新一下,以前菜鸡,没用过dilation这个属性,简化了公式,但是最近接触到了ASPP模块,空洞卷积模块,其中用到了dilation属性,因此更新一下博客
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)
设置:
stride = S
kernel_size = K
padding = P
dilation = D 表示的是卷积核K*K个点,相邻两个点之间的距离为(dilation-1)
空洞卷积具体动画见:Pytorch中各种卷积动画

输入尺寸为Win,输出尺寸为Wout
公式:

如果不是空洞卷积,即dilation默认为1时,则使用下面的公式即可!!

torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros', device=None, dtype=None)
设置:
这个属性有点东西,先不管,还不会公式:

这里含有dilation属性的公式就不给了,一般不会用这个函数进行空洞卷积的,有需要可以去官网看一下,有具体公式,一般上面的公式就够用了!!
这里重在使用吧,具体得推导公式需要结合参数进行演算。
首先熟悉它的默认参数设置:

给出的计算公式:

简化计算:
因为这里的dilation基本不设置,所以题目默认是1,将以上公式化简一下得:
好像和Conv2d的公式是一样的:
这里我下午在计算输出尺寸的时候,去找了相关博客,结果果断被带入坑里了,算了半天尺寸不对,最后去官网看了一下,原来因为默认值不知道,导致翻车,裂开,这里给出官网链接,大家官网为准