每层神经网络输入与输出的关系如下所示:

                                                                  N=\left ( W - D*\left ( F-1\right )-1 + 2P \right ) / S + 1

其中D大多数情况都默认为1,因此上述公式可简化为:

                                                                  N=\left ( W - F + 2P \right ) / S + 1

其中:

N表示输出图片尺寸(N×N)

W 表示输入图片尺寸(W×W)

F 表示卷积核的大小(F×F)

S 表示步长

P 表示填充的像素数(Padding)

D 表示卷积核元素间隔,正常卷积该参数为1,当其大于1时表示空洞卷积

池化层的计算大致一样,也是利用滤波器的大小 F×F 和 步长的大小 S 进行计算;通常是不加 padding 的,如果有 Padding, 则完全按照卷积的公式计算即可。


Pytorch 中,实现卷积神经网络的两个主要函数:

#卷积
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)
#池化
torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐