精华内容
下载资源
问答
  • 池化 万次阅读 多人点赞
    2019-07-31 15:28:07

    池化

         在通过卷积层获得特征(feature map) 之后 ,下一步要做的就是利用这些特征进行整合、分类。理论上来讲,所有经过卷积提取得到的特征都可以作为分类器的输入(比如 softmax 分类器) ,但这样做会面临着巨大的计算量. 比如对于一个 300X300 的输入图像(假设只有一个通道) ,经过 100个 3X3 大小的卷积核进行卷积操作后,得到的特征矩阵大小是 (300 -3+1) X(300 -3+1) = 88804 ,将这些数据一下输入到分类器中显然不好.

         此时我们就会采用 池化层将得到的特征(feature map) 进行降维,假如我们得到一个局部特征,他是一个图像的一个局部放大图,分辨率很大,那么我们就可以将一些像素点周围的像素点(特征值) 近似看待,将平面内某一位置及其相邻位置的特征值进行统计,并将汇总后的结果作为这一位置在该平面的值.

        常见的池化有 最大池化(Max Pooling) , 平均池化(Average Pooling) ,使用池化函数来进一步对卷积操作得到的特征映射结果进行处理。池化会将平面内某未知及其相邻位置的特征值进行统计汇总。并将汇总后的结果作为这一位置在该平面的值。最大池化会计算该位置及其相邻矩阵区域内的最大值,并将这个最大值作为该位置的值,平均池化会计算该位置及其相邻矩阵区域内的平均值,并将这个值作为该位置的值。使用池化不会造成数据矩阵深度的改变,只会在高度和宽带上降低,达到降维的目的。

    池化过程

    下面以最大池化为例,平均池化原理一样。

     

     

    常用的池化函数

       Tensorflow 提供了几个封装有池化操作的函数,如实现最大池化的 nn.max_pool() 函数,实现平均池化的 nn.avg_pool()函数。

    pool(input,window_shape,pooling_type,padding,dilation_rate,strides,name,data_format)
    avg_pool(value,ksize,strides,padding,data_format,name) 
    max_pool(value,ksize,strides,padding,data_format,name) 
    #ksize 参数提供了过滤器的尺寸,strides 参数提供步长信息
    #padding 提供是否使用全0填充 

         以 nn.max_pool() 为例 ,首先需要传入当前层的单位矩阵,这个矩阵是四维矩阵(batch_size , 高度,宽度,深度) ,

    第二个参数为过滤器(池化核)的尺寸。虽然能够将其赋值为长度为4 的一维数组,但是这个数的第一个数和第四个数必须是1 

    。nn.max_pool() 函数的第三个参数是步长。最后一个参数指定了是否使用全0填充。VALD 表示不使用全0 填充。 SAME表示使用全0 填充。

     

    池化层的代码实现 

      1 #!/usr/bin/env python
      2 # Author: xiaxiaosheng
      3 # Created Time: 2019年07月31日 星期三 08时49分28秒
      4 
      5 # icoding:utf-8
      6 import tensorflow as tf
      7 import numpy as np
      8 
      9 M = np.array([[[-2],[2],[0],[3]],
     10             [[1],[2],[-1],[2]],
     11             [[0],[-1],[1],[0]]],dtype="float32").reshape(1,3,4,1)
     12 
     13 filter_weight = tf.get_variable("weights",[2,2,1,1],initializer=
     14         tf.constant_initializer([[2,0],[-1,1]]))
     15 biase = tf.get_variable('biases',[1],initializer= tf.constant_initializer(1>
     16 x = tf.placeholder('float32',[1,None,None,1])
     17 
     18 conv = tf.nn.conv2d(x,filter_weight,strides=[1,1,1,1],padding="SAME")
     19 
     20 add_bias = tf.nn.bias_add(conv,biase)
     21 
    
    
    

     

    更多相关内容
  • 自适应池化Adaptive Pooling是PyTorch含有的一种池化层,在PyTorch的中有六种形式: 自适应最大池化Adaptive Max Pooling: torch.nn.AdaptiveMaxPool1d(output_size) torch.nn.AdaptiveMaxPool2d(output_size) ...
  • 1.高效简单池化的HttpClient工具类,提供单元测试用列。 2.支持基于SpringBoot 2.1.x的自动装载模块,引用依赖即可使用。 3.公司几十个项目都使用该工具类访问第三方的Http/Https+json协议接口。 4.经过上市公司多个...
  • 卷积神经网络有卷积层和池化层。包含多个卷积层和池化层。 卷积层有滤波器的作用。多层卷积层可描述为各级滤波器。获取不同粒度的信息 池化层也称为欠采样或下采样。主要用于特征降维,压缩数据和参数的数量,减小过...
  • 今天小编就为大家分享一篇pytorch中的卷积和池化计算方式详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • #!/usr/bin/env python2 # -*-coding:utf8-*- import numpy as np def max_pooling(feature_map, size=2, stride=2): """max_pooling""" channel = feature_map.shape[0] height = feature_map.shape[1] ...
  • 池化层定义在tensorflow/python/layers/pooling.py. 有最大值池化和均值池化。 1、tf.layers.max_pooling2d max_pooling2d( inputs, pool_size, strides, padding='valid', data_format='channels_last', ...
  • 如题:只需要给定输出特征图的大小就好,其中通道数前后不发生变化。具体如下: AdaptiveAvgPool2d CLASStorch.nn.AdaptiveAvgPool2d(output_size)[SOURCE] Applies a 2D adaptive average pooling over an input ...
  • 对一个C*H*W的三维输入Tensor, 池化输出为C*H*N, 即按照H轴逐行对W轴平均池化 >>> a = torch.ones(2,3,4) >>> a[0,1,2] = 0 >>>> a tensor([[[1., 1., 1., 1.], [1., 1., 0., 1.], [1., 1., 1., 1.]], [[1., 1.,...
  • 空间金字塔池化

    2019-03-19 10:29:22
    Deeplab Semantic image segmentation with deep convolutional nets, atrous convolution 空间金字塔池化的文章
  • 深度学习入门课程---池化层(Pooling)原理视频教程,希望能够学习者提供帮助,实现对池化层(Pooling)原理基础知识的掌握与理解,为后续学习做好铺垫,实现池化层(Pooling)原理的灵活运用
  • NULL 博文链接:https://cosmo1987.iteye.com/blog/1537415
  • HVS是一个复杂的非线性系统, 采用2种广义平均池化策略来刻画HVS特性, 以提高C-SSIM、C-GSSIM及彩色图像的特征相似性(C-FSIM)的评价效果。在TID2013图像数据库中进行数值计算, 结果表明: 基于广义平均池化策略的C-...
  • 纯verilog实现CNN卷积网络,包括卷积层,池化层,全连接FC层,vivado2019.2开发,含testbench
  • 针对上述问题,提出了一种基于多池化融合与背景消除网络的跨数据集行人再识别方法。为了兼顾全局特征和局部特征,同时实现特征的多细粒度表示,构建了多池化融合网络。为了使监督网络能提取有用的行人前景特征,构建...
  • 双线性池化(Bilinear pooling)tensorflow版,可以用于细粒度分类
  • 基于MATLAB的神经网络池化过程示例基于MATLAB的神经网络池化过程示例
  • Common Lisp 的一个简单、快速、线程安全的池化库。 我们需要用于创建成本高且可以重用的项目的池。 一个典型的用例是连接池。 池项创建(根据需要)在从池中获取时自动进行。 使用用户提供的函数创建和销毁池项。...
  • Environment OS: macOS Mojave ...本文记录一下使用 PyTorch 建立神经网络模型中各种层的定义方法,包括卷积层(卷积、转置卷积)、池化层(平均池化、最大池化、反池化)、全连接层、激活函数层。这里主要记录对于二
  • 目前基本上基于卷积神经网络的...本文利用可变尺度池化和双线性插值的思想提出了尺度可变网络,使得网络支持不同尺寸的输入。在CompCars细粒度车型分类任务中,应用可变尺度网络后,不同尺寸下分类准确度平均提升5%。
  • 利用MATLAB里的反卷积和反池化实现 王同学,想请你帮我思考一下做个东西:不知道你看过那个visualizing and understanding cnn那篇文章没有。你可以看到,他的可视化是通过上采样以及反卷积把某层的冲激响应映射会...
  • 原始数据集的图片大小为28*28*1,一轮卷积操作与5个滤波器...通过maxpooling后得到大小为12*12*5的池化层。展开后连接一个全连接层做分类器。因为该任务为多分类任务,输出层采用softmax函数,采用交叉熵作为目标函数。
  • 为了克服上述限制,本文提出了一种全局门控混合二阶池化(GM-SOP)方法,以进一步提高深度 CNN 的表示能力。 为此,我们引入了一种稀疏约束的门控机制,并提出了一种新的参数化 SOP 作为混合模型的组成部分。 给定一...
  • 基于通道池化的深度人脸识别网络.pdf
  • 卷积神经网络中重要部分模块代码,可以从代码上理解各个模块的工作原理。从最简单的传送,等有空给大家传送实例。
  • 手写池化操作.zip

    2019-08-04 16:22:54
    使用Python语言实现图片降采样常用的池化操作,实现了常见的最大池化和均值池化
  • 结合全局与局部池化的深度哈希人脸识别算法.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,068
精华内容 38,427
关键字:

池化

友情链接: C8051F02x.rar