首页 > 其他分享 >Keras MaxPooling2D

Keras MaxPooling2D

时间:2023-10-08 09:33:45浏览次数:44  
标签:inputs None Keras pooling 维度 import MaxPooling2D

 

Keras MaxPooling2D

 

2D最大池化层

    keras.layers.MaxPooling2D(pool_size=(2, 2),
                              strides=None,
                              padding='valid',
                              data_format=None)

参数详解

        pool_size: 池化窗口大小
        strides: 池化步长,默认值等于 pool_size
        padding: 'VALID' 或 'SAME','VALID'表示无填充,'SAME'表示用0填充
        data_format: 表示输入张量的维度顺序,默认为 [batch, height, width, channel]

示例

    from tensorflow.keras.layers import MaxPool2D
    import tensorflow as tf
    import numpy as np
     
    # 定义一个最大池化层,用0填充
    pool1 = MaxPool2D(pool_size=(2, 2),
                      strides=None,
                      padding='SAME',
                      data_format=None)
     
    # 定义一个最大池化层,不填充
    pool2 = MaxPool2D(pool_size=(2, 2),
                      strides=None,
                      padding='VALID',
                      data_format=None)
     
    # 生成一个维度为[64, 101, 101, 3]的矩阵
    x = np.random.random((64, 101, 101, 3))
     
    # 转成tensor类型,第一个维度64表示batch
    x = tf.convert_to_tensor(x)
    print(x.shape) # [64, 101, 101, 3]
     
    # 进行最大池化
    y1 = pool1(x)
    print(y1.shape) # [64, 51, 51, 3]
     
    # 进行最大池化
    y2 = pool2(x)
    print(y2.shape) # [64, 50, 50, 3]
————————————————
链接:https://blog.csdn.net/weixin_46566663/article/details/127621307

 

==================================================

一. pooling的总类

根据维度可将其分为:1D,2D,3D

根据取值运算可将其分为:max,average

根据步长可将其分为:正常,global
二. keras中的API(函数调用接口)

    from .pooling import MaxPooling1D
    from .pooling import MaxPooling2D
    from .pooling import MaxPooling3D
    from .pooling import AveragePooling1D
    from .pooling import AveragePooling2D
    from .pooling import AveragePooling3D
    from .pooling import GlobalMaxPooling1D
    from .pooling import GlobalMaxPooling2D
    from .pooling import GlobalMaxPooling3D
    from .pooling import GlobalAveragePooling2D
    from .pooling import GlobalAveragePooling1D
    from .pooling import GlobalAveragePooling3D

三. 分析其输入输出

在keras中使用时直接调用即可

    from keras.layers import MaxPooling1D, MaxPooling2D, MaxPooling3D, AveragePooling1D, AveragePooling2D, AveragePooling3D, GlobalMaxPooling1D, GlobalMaxPooling2D, GlobalMaxPooling3D, GlobalAveragePooling2D, GlobalAveragePooling1D, GlobalAveragePooling3D
    from keras.layers import Input

1. 1D

max和average只是一个取最大值,一个取均值,这里为了说明,只使用MaxPooling1D来测试:

    inputs = Input(shape=(4,3))
    x = MaxPooling1D()(inputs)
    model = Model(inputs=inputs, outputs=x)
    model.summary()

输出:

    _________________________________________________________________
    Layer (type)                 Output Shape              Param #   
    =================================================================
    input_1 (InputLayer)         (None, 4, 3)              0         
    _________________________________________________________________
    max_pooling1d_1 (MaxPooling1 (None, 2, 3)              0         
    =================================================================
    Total params: 0
    Trainable params: 0
    Non-trainable params: 0
    _________________________________________________________________

所以:可以将MaxPooling1D的输入看作(batch, col, channel), 在col维度上取最大值,函数默认的步长为2,所以在输入为(None,4,3),输出为(None,2,3)。
2. Global1D

和1D的输入输出的维度一样,只是Global1D不在kernel上取值,而是在整个第二维度上取值,例如输入为(None,4,3),输出为(None,3).
3. 2D

以MaxPooling2D为例:

    inputs = Input(shape=(5,4,3))
    x = MaxPooling2D()(inputs)
    model = Model(inputs=inputs, outputs=x)
    model.summary()

输出:

    _________________________________________________________________
    Layer (type)                 Output Shape              Param #   
    =================================================================
    input_1 (InputLayer)         (None, 5, 4, 3)           0         
    _________________________________________________________________
    max_pooling2d_1 (MaxPooling2 (None, 2, 2, 3)           0         
    =================================================================
    Total params: 0
    Trainable params: 0
    Non-trainable params: 0
    _________________________________________________________________

所以:可以将MaxPooling2D的输入看作(batch,row, col, channel), 在row, col维度上取最大值,函数默认的步长为2,所以在输入为(None,5,4,3),输出为(None,2,2,3)。
4. Global2D

和2D的输入输出的维度一样,只是Global2D不在kernel上取值,而是在整个第二、三维度上取值,例如输入为(None,5,4,3),输出为(None,3).
5. 3D

以MaxPooling3D为例:

    inputs = Input(shape=(6,5,4,3))
    x = MaxPooling3D()(inputs)
    model = Model(inputs=inputs, outputs=x)
    model.summary()

输出:

    _________________________________________________________________
    Layer (type)                 Output Shape              Param #   
    =================================================================
    input_1 (InputLayer)         (None, 6, 5, 4, 3)        0         
    _________________________________________________________________
    max_pooling3d_1 (MaxPooling3 (None, 3, 2, 2, 3)        0         
    =================================================================
    Total params: 0
    Trainable params: 0
    Non-trainable params: 0
    _________________________________________________________________

所以:可以将MaxPooling2D的输入看作(batch,row, col,depth, channel), 在row, col, depth维度上取最大值,函数默认的步长为2,所以在输入为(None,6,5,4,3),输出为(None,3,2,2,3)。
4. Global3D

和2D的输入输出的维度一样,只是Global3D不在kernel上取值,而是在整个第二、三、四维度上取值,例如输入为(None,6,5,4,3),输出为(None,3).

链接:https://blog.csdn.net/weixin_41910772/article/details/109288701

==================================================

http://www.manongjc.com/detail/30-cxueilzhganqalk.html

https://www.codenong.com/39815518/

标签:inputs,None,Keras,pooling,维度,import,MaxPooling2D
From: https://www.cnblogs.com/emanlee/p/17090054.html

相关文章

  • Keras Flatten
    KerasFlatten===============================================================作用:Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。例子:   fromkeras.modelsimportSequential   fromkeras.layers.c......
  • Keras Dropout
    =============================================================== 一、Keras中使用Dropout正则化减少过度拟合Dropout正则化是最简单的神经网络正则化方法。其原理非常简单粗暴:任意丢弃神经网络层中的输入,该层可以是数据样本中的输入变量或来自先前层的激活。它能够模拟具......
  • keras.layers. K.function 用法(keras提取中间层的输出)
    https://www.laike.net/article-11-295083-0.html 使用K.function()调试keras操作Keras的底层库使用Theano或TensorFlow,这两个库也称为Keras的后端。无论是Theano还是TensorFlow,都需要提前定义好网络的结构,也就是常说的“计算图”。在运行前需要对计算图编译,然后才能输出结果......
  • 解决tansorflow新手教程的keras.datasets数据下载问题
    portal>https://github.com/tensorflow/tensorflow/issues/33285......
  • 无涯教程-TensorFlow - Keras
    Keras易于学习的高级Python库,可在TensorFlow框架上运行,它的重点是理解深度学习技术,如为神经网络创建层,以维护形状和数学细节的概念。框架的创建可以分为以下两种类型-顺序API功能API无涯教程将使用JupyterNotebook执行和显示输出,如下所示-步骤1  - 首先执行数据加载和......
  • 安装nlpcda2.5.8 Simbert不能正常使用,除非你安装:bert4keras、tensorflow ,为了
    安装nlpcda2.5.8Simbert不能正常使用问题解决方案在自然语言处理(NLP)领域,模型的选择和安装是非常重要的。为了使用nlpcda2.5.8Simbert,我们需要在安装该库之前先安装bert4keras和tensorflow。本文将介绍如何解决Simbert不能正常使用的问题,并给出相应的代码示例。1.安装bert4kera......
  • 使用Keras Tuner进行超参数自动调优
    本文将使用Tensorflow中包含的FashionMNIST数据集。该数据集在训练集中包含60,000张灰度图像,在测试集中包含10,000张图像。每张图片代表属于10个类别之一的单品(“T恤/上衣”、“裤子”、“套头衫”等)。因此这是一个多类分类问题。首先我们需要安装keras_tuner,它将......
  • Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化|附代码数据
    原文链接:http://tecdat.cn/?p=23573最近我们被客户要求撰写关于Keras神经网络序列模型的研究报告,包括一些图形和统计输出。我们可以很容易地用Keras序列模型拟合回归数据并预测测试数据。  在这篇文章中,我们将简要地学习如何用Python中的Keras神经网络API拟合回归数据。我们将......
  • Could not fetch URL https://pypi.org/simple/keras-bert/: There was a problem co
    pip下载包的时候报错CouldnotfetchURLhttps://pypi.org/simple/keras-bert/:Therewasaproblemconfirmingthesslcertificate:HTTPSConnectionPool(host='pypi.org',port=443):Maxretriesexceededwithurl:/simple/keras-bert/(CausedbySSLError(SSLEO......
  • Keras,今天7岁啦!
    Keras框架7周年。2015年3月28日,谷歌人工智能研究员FrançoisChollet发布了Keras框架的第一版。当时,他在机器学习领域已从事多年的研究工作,创造Keras主要为了帮助自己快速实验。图/FrançoisCholletFrançois没想过人工智能会快速大众化,但在2015~2016年,就有数万名新人进入了机器学......