在上一篇文章中,我们介绍了卷积神经网络的基本理论,并使用PyTorch搭建一个类似LeNet-5的网络结构,用于Fashion-MNIST数据集的图像分类。不过上一篇文章中搭建卷积网络使用的是普通卷积,本篇文章我们继续用PyTorch搭建一个类似LeNet-5的网络结构,不过我们这次使用空洞卷积核,搭建的是一个空洞卷积神经网络。
在PyTorch库中使用nn.Conv2d()函数,通过调节参数dilation的取值,进行不同大小卷积核的空洞卷积运算。针对搭建的空洞卷积神经网络,使用如下图所示的网络结构。
上图中搭建的卷积神经网络含有两个空洞卷积层,两个池化层以及两个全连接层,并且分类器包含10个神经元。该网络结构除了卷积方式的差异之外,与上一节搭建的网络卷积结构完全相同。
下面搭建一个空洞卷积神经网络:
class MyConvdilaNet(nn.Module):
def __init__(self):
super(MyConvdilaNet, self).__init__()
#定义第一个卷积层
self.conv1=nn.Sequential(
#卷积后:(1*28*28)->(16*26*26)
nn.Conv2d(1,