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

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

前言


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


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




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)



相关文章
|
8天前
|
机器学习/深度学习 计算机视觉
卷积神经网络中池化层的概念介绍
卷积神经网络中池化层的概念介绍
30 0
|
8天前
|
机器学习/深度学习 算法 计算机视觉
卷积神经网络中的卷积层,如何提取图片的特征?
卷积神经网络中的卷积层,如何提取图片的特征?
40 0
|
8天前
|
PyTorch 算法框架/工具
Pytorch中最大池化层Maxpool的作用说明及实例使用(附代码)
Pytorch中最大池化层Maxpool的作用说明及实例使用(附代码)
127 0
|
8天前
|
机器学习/深度学习 存储 TensorFlow
【Python机器学习】卷积神经网络卷积层、池化层、Flatten层、批标准化层的讲解(图文解释)
【Python机器学习】卷积神经网络卷积层、池化层、Flatten层、批标准化层的讲解(图文解释)
123 0
|
8天前
|
机器学习/深度学习 计算机视觉 Ruby
【池化层】基础回顾:带你认识神经网络中的池化层
【池化层】基础回顾:带你认识神经网络中的池化层
158 0
【池化层】基础回顾:带你认识神经网络中的池化层
|
8天前
|
机器学习/深度学习 算法 PyTorch
手把手教你搭建一个深度网络模型:从输入层-激活函数-损失函数-优化方法-输出层-执行训练
我这几天遇到一个不错的范例,将的是一层一层教我们搭建一个神经网络,其实很多我接触过的伙伴对修改模型架构这块还是头疼。其实我么可以从简单的神经网络层开始,自己DIY每一层,对上手修改架构有帮助。这里用的是paddle框架,当然玩pytorch的朋友也别急着关掉,因为我这几天刷到的pytorch感觉和飞桨的这块几乎是非常相似。只是有点点表达不一样,其他都完全一样。甚至连编程习惯都非常一样。下面是来自PaddlePaddle FLuid深度学习入门与实战一书的案例。
119 0
|
11月前
|
PyTorch 算法框架/工具
Pytorch 深度可分离卷积和MobileNet_v1
Pytorch 深度可分离卷积和MobileNet_v1
|
12月前
|
机器学习/深度学习 存储 编解码
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
140 0
|
12月前
|
机器学习/深度学习 计算机视觉 索引
全新卷积模块DRConv | 进一步提升卷积的表示能力
全新卷积模块DRConv | 进一步提升卷积的表示能力
278 0
|
机器学习/深度学习 编解码 数据可视化
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解

热门文章

最新文章