首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >*pool2D和*pooling2D之间的Tensorflow差异

*pool2D和*pooling2D之间的Tensorflow差异
EN

Stack Overflow用户
提问于 2020-08-01 01:52:45
回答 1查看 490关注 0票数 3

我正在学习这个使用layers.MaxPooling2DTensorFlow-2.x-Tutorials。自动补全也提示layers.MaxPool2D,所以我搜索它们之间的区别。

提到这个api_docs,我发现它们的全名是tf.compat.v1.layers.MaxPooling2Dtf.keras.layers.MaxPool2D,它们有几乎相同的参数,我可以考虑layers.MaxPooling2D = layers.MaxPool2D,但前者是tf1.x,后者是tf2.x?

此外,我还发现了tf.keras.layers.GlobalMaxPool1D(一维时态数据的全局最大池化操作)和tf.keras.layers.GlobalAveragePooling1D(时态数据的全局平均池化操作),这两种操作具有完全相同的参数,为什么函数名的语法不同?

EN

回答 1

Stack Overflow用户

发布于 2020-08-01 11:23:27

我只回答你的第二个问题,因为有人发现了你第一个问题的复制品。

MaxPooling2D从二维数组中取最大值。以下面的输入为例:

代码语言:javascript
复制
import tensorflow as tf

x = tf.random.uniform(minval=0, maxval=10, dtype=tf.int32, shape=(3, 3, 3), seed=42)
代码语言:javascript
复制
<tf.Tensor: shape=(3, 3, 3), dtype=int32, numpy=
array([[[2, 4, 3],
        [9, 1, 8],
        [8, 3, 5]],
       [[6, 6, 9],
        [9, 6, 1],
        [7, 5, 2]],
       [[2, 0, 8],
        [1, 6, 1],
        [2, 3, 9]]])>

MaxPooling2D将取这三个元素的平均值:

代码语言:javascript
复制
gmp = tf.keras.layers.GlobalMaxPooling2D()

gmp(x[..., None])
代码语言:javascript
复制
<tf.Tensor: shape=(3, 1), dtype=int32, numpy=
array([[9],
       [9],
       [9]])>

每个元素中都有一个9,因此该操作将为所有三个元素返回9。对于GlobalAveragePooling2D来说,这是完全相同的事情,但对于平均值。

代码语言:javascript
复制
gap = tf.keras.layers.GlobalAveragePooling2D()

gap(x[..., None])
代码语言:javascript
复制
<tf.Tensor: shape=(3, 1), dtype=int32, numpy=
array([[3],
       [6],
       [5]])>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63196778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档