精华内容
下载资源
问答
  • 最大池化

    千次阅读 2018-07-04 18:50:00
    TensorFlow 最大池化 由 Aphex34 (自己的作品)CC BY-SA 4.0, 通过 Wikimedia Commons 共享 这是一个最大池化的例子max pooling用了 2x2 的滤波器 stride ...

    TensorFlow 最大池化

     

    由 Aphex34 (自己的作品) CC BY-SA 4.0, 通过 Wikimedia Commons 共享

     

    这是一个最大池化的例子max pooling 用了 2x2 的滤波器 stride 为 2。四个 2x2 的颜色代表滤波器移动每个步长所产出的最大值。

    例如 [[1, 0], [4, 6]] 生成 6,因为 6 是这4个数字中最大的。同理 [[2, 3], [6, 8]] 生成 8。 理论上,最大池化操作的好处是减小输入大小,使得神经网络能够专注于最重要的元素。最大池化只取覆盖区域中的最大值,其它的值都丢弃。

    TensorFlow 提供了 tf.nn.max_pool() 函数,用于对卷积层实现 最大池化 。

    ...
    
    conv_layer = tf.nn.conv2d(input, weight, strides=[1, 2, 2, 1], padding='SAME')
    conv_layer = tf.nn.bias_add(conv_layer, bias)
    conv_layer = tf.nn.relu(conv_layer)
    # Apply Max Pooling
    conv_layer = tf.nn.max_pool(
        conv_layer,
        ksize=[1, 2, 2, 1],
        strides=[1, 2, 2, 1],
        padding='SAME')

     

    tf.nn.max_pool() 函数实现最大池化时, ksize参数是滤波器大小,strides参数是步长。2x2 的滤波器配合 2x2 的步长是常用设定。

    ksize 和 strides 参数也被构建为四个元素的列表,每个元素对应 input tensor 的一个维度 ([batch, height, width, channels]),对 ksize 和 strides 来说,batch 和 channel 通常都设置成 1

     

    设置

    H = height, W = width, D = depth

    • 输入维度是 4x4x5 (HxWxD)
    • 滤波器大小 2x2 (HxW)
    • stride 的高和宽都是 2 (S)

    新的高和宽的公式是:

    new_height = (input_height - filter_height)/S + 1
    new_width = (input_width - filter_width)/S + 1 

    注意:池化层的输出深度与输入的深度相同。另外池化操作是分别应用到每一个深度切片层。

    下图给你一个最大池化层如何工作的示例。这里,最大池化滤波器的大小是 2x2。当最大池化层在输入层滑动时,输出是这个 2x2 方块的最大值。

     
     

    池化层输出结果

     

    输出的维度大小是什么?格式写成 HxWxD。


    2x2x5

    重置
     

    转载于:https://www.cnblogs.com/fuhang/p/9264842.html

    展开全文
  • 综述:最大池化,平均池化,全局最大池化和全局平均池化?区别原来是这样

    综述:最大池化,平均池化,全局最大池化和全局平均池化?区别原来是这样


    摘要

    创建ConvNets通常与池化层并驾齐驱。更具体地说,我们经常看到其他层,例如最大池化。但是他们是什么?为什么有必要,以及它们如何帮助训练机器学习模型?以及如何使用它们?

    我们在此博客文章中回答这些问题。

    首先,我们将从概念层面看一下池化操作。我们探索了ConvNet的内部工作原理,并通过此分析显示了合并层如何帮助这些模型中生成的空间层次结构。然后,我们继续确定池的四种类型-最大池化,平均池化,全局最大池化和全局平均池化。

    随后,我们从理论转向实践:我们展示池化如何在Keras(当今最广泛使用的深度学习框架)中表示。然后,我们通过基于MaxPooling的示例来结束本博客。

    什么是池化?

    假设您正在训练卷积神经网络。您的目标是对数据集中的图像进行分类。由您的神经网络中的第一卷积层执行的操作可以表示如下:
    在这里插入图片描述

    该层的输入是图像,高度为 H,宽度 w ^并具有三个渠道。因此,它们很可能是RGB图像。使用3x3x3内核&#

    展开全文
  • 图像最大池化

    2020-03-15 12:55:56
    最大池化 池化:把图片使用均等大小网格分割,并求网格内代表值的操作 最大池化:将网格中的最大值作为这个网格的代表值 二. 使用4*4网格对图像进行最大池化操作 import cv2 import numpy as np # max ...

    一. 最大池化

        池化:把图片使用均等大小网格分割,并求网格内代表值的操作

        最大池化:将网格中的最大值作为这个网格的代表值


    二. 使用4*4网格对图像进行最大池化操作

    import cv2
    
    import numpy as np
    
    # max pooling,G is the size of the window
    
    def max_pooling(img, G=4):
    
        # Max Pooling
    
        out = img.copy()
    
        H, W, C = img.shape
    
        Nh = int(H / G)
    
        Nw = int(W / G)
    
        for y in range(Nh):
    
            for x in range(Nw):
    
                for c in range(C):
    
                    out[G*y:G*(y+1), G*x:G*(x+1), c] = np.max(out[G*y:G*(y+1), G*x:G*(x+1), c])
    
        return out
    
    # Read image
    
    img = cv2.imread("../paojie.jpg")
    
    # Max pooling
    
    out = max_pooling(img)
    
    # Save result
    
    cv2.imwrite("out.jpg", out)
    
    cv2.imshow("result", out)
    
    cv2.waitKey(0)
    
    cv2.destroyAllWindows()

    三. 输出结果:

    最大池化后图像

    原图


    四. 利用pytorch中MaxPool2d函数对图像进行最大池化

    import cv2
    
    import numpy as np
    
    import torch
    
    import torch.nn as nn
    
    img = cv2.imread('../paojie.jpg',0)  #读入灰度图像
    
    img = np.array(img,dtype='float32')
    
    img = torch.from_numpy(img.reshape(1,1,img.shape[0],img.shape[1]))  # 将灰度图像转换为tensor
    
    maxPool = nn.MaxPool2d(4)  #4*4的窗口,步长为4的最大池化
    
    img = maxPool(img)
    
    img = torch.squeeze(img)  #去掉1的维度
    
    img = img.numpy().astype('uint8')  #转换格式,准备输出
    
    cv2.imwrite("out.jpg", img)
    
    cv2.imshow("result", img)
    
    cv2.waitKey(0)
    
    cv2.destroyAllWindows()

    五. pytoch中MaxPool2d函数最大池化的输出结果

    MaxPool2d输出结果


    六. 参考内容

    https://www.cnblogs.com/wojianxin/p/12496983.html

    https://www.jianshu.com/p/2de998acee98

    展开全文
  • 最大池化层: 、计算最大值和记录最大值所在输入数据中的位置 、缩减模型的大小 、提高计算速度 、减少无用信息的影响 、提高所提取特征的鲁棒性(最大值) 计算池化层 卷积层输出大小的公式同样适用于最大池化,(n+2p...

    最大池化层:
    、计算最大值和记录最大值所在输入数据中的位置
    、缩减模型的大小
    、提高计算速度
    、减少无用信息的影响
    、提高所提取特征的鲁棒性(最大值)

    计算池化层
    卷积层输出大小的公式同样适用于最大池化,(n+2p-f)/s+1
    (input_width + 2*padding - pool_size)/stride+1

    平均池化与最大池化区别:
    前向传播中计算pool区域内的最大值并记录该最大值所在输入数据中的位置,为了在反向传播中,需要把梯度值传到对应最大值的位置置。而且反向传播也就是把梯度值直接传给前一层某一个像素,而其他像素不接受梯度,也就是为0。所以max pooling操作和mean pooling操作不同点在于需要记录下池化操作时到底哪个像素的值是最大,也就是max id,这个变量就是记录最大值所在位置的,因为在反向传播中要用到。

    展开全文
  • 最大池化与平均池化的选择

    千次阅读 2019-08-09 14:32:39
    在目标对象是偏向于纹理、轮廓是,选用最大池化较好 在目标对象时偏向于背景或其他信息是,选用平均池化较好 在可以在较浅层使用最大池化,用来过滤无用的信息,在较深层使用平均池化,防止丢掉太多高维信息 ...
  • TensorFlow 最大池化

    千次阅读 2017-07-10 22:25:48
    TensorFlow 最大池化 由 Aphex34 (自己的作品) CC BY-SA 4.0, 通过 Wikimedia Commons 共享 这是一个最大池化的例子max pooling...
  • 池化的定义比较简单,最直观的作用便是降维,常见的池化有最大池化、平均池化和随机池化。 池化层不需要训练参数。 1、 三种池化:最大池化Maxpool、平均池化Average_pool、随机池化randpool 最大池化是对局部的值取...
  • 卷积神经网络——池化层学习——最大池化

    万次阅读 多人点赞 2019-10-05 14:48:35
    池化层(Pooling layers...假如输入是一个4×4矩阵,用到的池化类型是最大池化(max pooling)。 执行最大池化的树池是一个2×2矩阵。 执行过程非常简单,把4×4的输入拆分成不同的区域,我把这个区域用不同颜色来标...
  • 这里写自定义目录标题caffe 最大池化 pooling_layer原理代码注释参考资料 caffe 最大池化 pooling_layer 原理 首先上理论: 池化层是夹在连续的卷积层的中间层,池化层可以非常有效地缩小矩阵的尺寸。从而减少最后...
  • MATLAB 实现最大池化

    千次阅读 2020-04-03 11:50:05
    MATLAB 实现最大池化 function [dst_img] = max_pooling(img,win_size) % 对影像img进行全局最大池化操作,默认窗口为正方形,边长为win_size % 返回池化后的影像 fun = @(block_struct) max(block_struct.data(:));...
  • 【Pytorch实现】——最大池化和平均池化 import torch from torch import nn def pool2d(X, pool_size, mode='max'): # 获取池化层核的大小 p_h, p_w = pool_size # 计算经过最大池化后的特征图的大小 Y = ...
  • 简述平均池化和最大池化

    千次阅读 2018-11-05 16:56:30
    简述平均池化和最大池化 pooling的结果是使得特征减少,参数减少,但pooling的目的并不仅在于此。pooling目的是为了保持某种不变性(旋转、平移、伸缩等),常用的有mean-pooling,max-pooling和Stochastic-pooling...
  • numpy实现最大池化

    2021-08-05 10:54:22
    最大池化的逻辑是在一个固定大小的格子类找到最大的值,他是一个无权重层 class max_pool(): def __init__(self,pooling=(2,2), strides=(2, 2), padding=(0, 0)): self.pooling = pooling self.strides = ...
  • 神经网络最大池化

    2021-08-04 19:27:01
    最大池化层(常用的是maxpool2d)的作用: 一是对卷积层所提取的信息做更一步降维,减少计算量 二是加强图像特征的不变性,使之增加图像的偏移、旋转等方面的鲁棒性 具体操纵:取图像中的最大值作为输出,如下所示...
  • 手动实现最大池化

    2020-07-30 22:05:40
    最大池化(Max Pooling) 网格内的值不取平均值,而是取网格内的最大值进行池化操作。 import imageio import numpy as np import matplotlib.pylab as plt img = imageio.imread("imori.jpg") s = 8 rows,cols,C =...
  • 最大池化参数理解

    2021-03-01 12:35:32
    链接: linkhttps://blog.csdn.net/weixin_38481963/article/details/109962715. class torch.nn.MaxPool2d(kernel_size, stride=...kernel_size :表示做最大池化的窗口大小,可以是单个值,也可以是tuple元组 stri
  • cnn中关于平均池化和最大池化的理解 接触到pooling主要是在用于图像处理的卷积神经网络中,但随着深层神经网络的发展,pooling相关技术在其他领域,其他结构的神经网络中也越来越受关注。一个典型的卷积神经网络结构...
  • 根据MIT的 Learning Deep Features for Discriminative Localization论文中的描述,在使用类响应图class activation mapping (CAM) 对比全局平均池化Global average pooling (GAP) vs 全局最大池化global max ...
  • 的P19讲讲述了神经网络的最大池化的使用。 最大池化的作用 就是减少训练的数据量。举个例子:视频有1080p和720p,输入图像就是一个1080p的视频,网卡的时候可以池化一下变成720p的,可以看而且文件变小了。 池化过程...
  • 基于最大池化的图双注意力网络计算机研究及应用.docx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,315
精华内容 18,926
关键字:

最大池化