LeNet5是卷积神经网络的开山之作,在手写数字识别上达到了出色的效果。LeNet5具有5层神经网络,其中2层卷积神经网络,3层全连接。两层卷积神经网络之后分别接了一个激活层和一个平均池化层。这里通过对lenet进行解析和修改,实现对自定义图像数据的分类。
首先来解析lenet5手写数字识别模型:
第一个卷积层:输入图像为32*32大小的灰度图,图像通道为1,宽高为32*32,卷积层包含6个卷积核,每个卷积核大小为5*5,经过第一个卷积层后,生成通道为6的宽高为28*28的特征图,之后通过sigmoid激活函数和池化层,池化层为均值池化,采用2*2卷积核,步长为2进行池化卷积,对特征图进行下采样,经过池化以后,特征图变为6*14*14;
第二个卷积层:这一层有16个卷积核,卷积核大小5*5,经过该层卷积后特征图大小变为16*10*10,池化层同样采用2*2卷积核,步长为2,经过池化后,特征图变为16*5*5;
在全连接层之前需要对特征图进行打平,16*5*5=400,通过第一个全连接层,降维到120,第二个全连接层后降维到84,第三个全连接层降维到10,也就是手写数字识别的分类数。
lenet5的pytorch实现:
net = torch.nn.Sequential(
nn.Conv2d(1,6,kernel_size=5), #[1,1,28,28]*[6,5*5]-->[1,6,28,28],图像与6个5*5的卷积核计算,得到6个28*28特征图
nn.Sigmoid(), #激活函数
nn.AvgPool2d(2,stride=2), #[1,6,28,28]-->[1,6,14,14],平均池化,卷积核2*2,步长2(每四个像素合并为一个)
nn.Conv2d(6,1

解析LeNet5卷积神经网络,并演示其在自定义图像数据集上的应用与优化。
最低0.47元/天 解锁文章
2831

被折叠的 条评论
为什么被折叠?



