最大值池化与均值池化比较分析
创始人
2024-06-01 15:15:59
0次

1 问题

在深度学习的卷积网络过程中,神经网络有卷积层,池化层,全连接层。而池化层有最大值池化和均值池化两种情况,而我们组就在思考,最大值池化和均值池化有什么区别呢?两者的模型准确率是否有所不同?

2 方法

这是所有的代码,主要改变卷积层中的最大值池化和均值池化的相关代码即可。也就是maxpool2d和avgpool2d的应用。

class MyNet(nn.Module):
   # (5.2)定义网络有哪些层,这些层都作为成员变量
   def __init__(self) -> None:
       super().__init__()
       self.conv1=nn.Conv2d(in_channels=1,out_channels=16,
           kernel_size=3,stride=1,padding=1)
       self.conv2=nn.Conv2d(in_channels=16,out_channels=32,
           kernel_size=3,stride=1,padding=1)
       self.max_pool=nn.MaxPool2d(kernel_size=2,
           stride=2)
       #self.avg_pool=nn.AvgPool2d(kernel_size=2,stride=2)
       self.fc=nn.Linear(in_features=32*14*14,
           out_features=10)
   def forward(self, x):
       x=self.conv1(x)
       x=self.conv2(x)
       x=self.max_pool(x)
       #x=self.avg_pool(x)
       #[B,C,H,W]
       #1的目的是拉伸C,H,W,不拉伸B
       x=torch.flatten(x,1)
       out=self.fc(x)
       return out

f4aa04d0d254cd6ef104fac9fd0bbc98.png

51ec002ca54e9641cf9e7d8c7f9e3185.png1dba10385fc7fceb75cbc1617aaa3a8b.png然后我们训练了100个周期,通过比较2者的准确率和损失值来比较分析。

两者分别是均值池化和最大值池化,可以从图中看出,不论是均值池化还是最大值池化,两者的准确率都是前10个周期准确率猛增。而在10个周期之后,均值池化的准确率是基于平稳的,并且train和val的准确率是交错的。最大值池化的准确率还是在继续增长,虽然增长幅度不是太大,并且train和val的准确率是分开的,一直保持没有交错。

均值池化的test准确率为9e55a962d8a5fd69fb45d73142a35c34.png

最大值池化的test准确率为54f1e1ef7d8b3cdf5721996346c140e6.png

能够看出来,最大值池化的准确率高于均值池化的准确率。

两者分别是均值池化和最大值池化,可以看出两者的loss率其实差别不大,但是最大值池化的loss下降明显先猛烈下降然后再逐渐下降的,均值池化是先猛烈下降然后基于平稳的。99165ec67b9299131cce391f770bc290.pngdeb07a676cf8a687557dd8f2667e9b3c.png

3 结语

对于均值池化和最大值池化的比较分析,我们运用了100个周期训练模型然后画图比较准确率和loss,发现最大值池化的准确率高于均值池化的准确率,但是均值池化的准确率在训练周期较少时,准确率较高,而最大值池化的准确率在训练周期较多时,准确率较高,说明这个方法是有效的,但是本次实验并没有对一个方法进行多次训练,较少偶然性,未来我们可以继续研究多次训练之后的模型的预测准确率是否有较大差异,来验证是否具有实验偶然性。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...