【深度学习】Pytorch池化层效率对比:自适应池化、最大值池化和均值池化

探究三种池化函数在降维过程中的效率比较

池化函数通常被用作卷积神经网络中的降维操作,池化函数可以大大降低特征维数,同时避免数据冗余和过拟合。

首先定义卷积层:

【深度学习】Pytorch池化层效率对比:自适应池化、最大值池化和均值池化_第1张图片

定义池化函数:

【深度学习】Pytorch池化层效率对比:自适应池化、最大值池化和均值池化_第2张图片均值池化:将卷积核扫描区域内的所有值加和求平均作为该次扫描的输出结果
最大值池化:将卷积核扫描区域内的最大值作为该次扫描的输出结果
自适应池化:此函数只输入一个 output_size 参数即可实现降维操作,具体实现过程是在运行过程中计算 kernel_size 和 stride ,padding 默认为 0 .
计算公式如下:
【深度学习】Pytorch池化层效率对比:自适应池化、最大值池化和均值池化_第3张图片

定义函数调用:

【深度学习】Pytorch池化层效率对比:自适应池化、最大值池化和均值池化_第4张图片

定义主函数:

【深度学习】Pytorch池化层效率对比:自适应池化、最大值池化和均值池化_第5张图片在这里,我使用了 time() 函数计算每个池化函数的运行时间,在运行相同循环次数生成处理后的网络的前提下,得出每个池化函数的运行时间。

得出各函数的运行时间:

【深度学习】Pytorch池化层效率对比:自适应池化、最大值池化和均值池化_第6张图片

结论:

在其他条件一致的前提下,自适应池化的效率远低于另外两种池化,同时,均值池化和最值池化的效率几乎相同。

你可能感兴趣的:(python,pytorch,神经网络)