动手实现池化层以及池化图像的可视化

简介: 动手实现池化层以及池化图像的可视化

前言


卷积神经网络的核心架构中的池化层往往紧接卷积层后,这里对图像的池化是指对卷积后的图像进行池化,所以卷积图像的可视化请移步《动手实现卷积层以及卷积图像的可视化》


这里就接着卷积后的图像进行池化操作了。




What is Pool


  池化操作的个重要的目的就是对卷积后得到的特征进行进一步处理(主要是降维),池化层可以起到对数据进一步 浓缩的效果,从而缓解计算时内存的压力。池化会选取-定大小区域, 将该区域内的像素值使用一一个代表元素 表示。如果使用平均值代替,称为平均值池化,如果使用最大值代替则称为最大值池化。


  在Pytorch中有多种池化的类:


  1. 最大值池化(MaxPool)


  1. 最大值逆池化(MaxUnPool)


  1. 平均值池化(AvgPool)


  1. 自适应池化(AdaptiveMaxPool、AdaptiveAvgPool)




How to use Conv


功能
toech.nn.MaxPool1d() 对输入进行1D最大值池化
toech.nn.MaxPool2d() 对输入进行2D最大值池化
toech.nn.MaxPool3d() 对输入进行3D最大值池化
功能
toech.nn.MaxUnPool1d() 对输入进行1D最大值池化逆运算
toech.nn.MaxUnPool2d() 对输入进行2D最大值池化逆运算
toech.nn.MaxUnPool3d() 对输入进行3D最大值池化逆运算
功能
toech.nn.AvgPool1d() 对输入进行1D平均值池化
toech.nn.AvgPool2d() 对输入进行2D平均值池化
toech.nn.AvgPool3d() 对输入进行3D平均值池化
功能
toech.nn.AdaptiveMaxPool1d() 对输入进行1D自适应最大值池化
toech.nn.AdaptiveMaxPool2d() 对输入进行2D自适应最大值池化
toech.nn.AdaptiveMaxPool3d() 对输入进行3D自适应最大值池化



toech.nn.MaxPool2d() 为例子介绍内部参数:


  1. kernel_size: 最大值池化窗口


  1. stride: 最大值池化窗口移动步长(默认:kernel_size)


  1. padding: 输入的每条边补充0的层数


  1. dilation: 一个控制窗口中元素步幅的参数

  2. return_indices:如果为Ture ,则会返回输出最大值的索引,这样会更加便于之后的逆运算
  3. ceil_model: 设置为Ture的时候会向上取整(默认向下取整)

Example

对已经过卷积的图进行的池化

最大值池化结果图:

image.png

image.png


平均值池化结果图:

image.png


image.png


Demo


紧接上文《动手实现卷积层以及卷积图像的可视化》


最大值池化:

maxpool2 = nn.MaxPool2d(2, stride=2)
pool2_out = maxpool2(image_conv2d_out)
pool2_out_img = pool2_out.data.squeeze()
pool2_out_image = numpy.array(pool2_out_img, dtype=np.float32)
print(pool2_out.shape)
cv2.imshow("pool2_out", pool2_out_image[1])
cv2.waitKey(0)

平均值池化:

avgpool2 = nn.AvgPool2d(2, stride=2)
pool2_out = avgpool2(image_conv2d_out)
pool2_out_img = pool2_out.data.squeeze()
pool2_out_image = numpy.array(pool2_out_img, dtype=np.float32)
print(pool2_out.shape)
cv2.imshow("pool2_out", pool2_out_image[1])
cv2.waitKey(0)



相关文章
|
1月前
|
机器学习/深度学习 计算机视觉
卷积神经网络中池化层的概念介绍
卷积神经网络中池化层的概念介绍
37 0
|
1月前
|
机器学习/深度学习 算法 计算机视觉
卷积神经网络中的卷积层,如何提取图片的特征?
卷积神经网络中的卷积层,如何提取图片的特征?
43 0
|
1月前
|
机器学习/深度学习 存储 TensorFlow
【Python机器学习】卷积神经网络卷积层、池化层、Flatten层、批标准化层的讲解(图文解释)
【Python机器学习】卷积神经网络卷积层、池化层、Flatten层、批标准化层的讲解(图文解释)
138 0
|
3天前
|
机器学习/深度学习
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
|
3天前
|
机器学习/深度学习
【从零开始学习深度学习】24.神经网络中池化层的作用:最大池化与平均池化
【从零开始学习深度学习】24.神经网络中池化层的作用:最大池化与平均池化
|
1月前
|
机器学习/深度学习 计算机视觉 Ruby
【池化层】基础回顾:带你认识神经网络中的池化层
【池化层】基础回顾:带你认识神经网络中的池化层
190 0
【池化层】基础回顾:带你认识神经网络中的池化层
|
10月前
|
机器学习/深度学习 算法
什么是卷积?(含如何实现卷积源码)
什么是卷积?(卷积简单实现源码)
91 0
什么是卷积?(含如何实现卷积源码)
|
机器学习/深度学习 存储 编解码
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
154 0
|
机器学习/深度学习 计算机视觉 索引
全新卷积模块DRConv | 进一步提升卷积的表示能力
全新卷积模块DRConv | 进一步提升卷积的表示能力
287 0
|
机器学习/深度学习 编解码 数据可视化
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解

热门文章

最新文章