【问题标题】:Tensorflow difference between *pool2D and *pooling2D*pool2D 和 *pooling2D 之间的 TensorFlow 差异
【发布时间】:2020-11-21 14:12:56
【问题描述】:

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

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

还有,我还发现tf.keras.layers.GlobalMaxPool1D(Global max pooling operation for 1D temporal data)和tf.keras.layers.GlobalAveragePooling1D(Global average pooling operation for temporal data),这两个参数完全一样,为什么是function的语法名字不一样?

【问题讨论】:

标签: python tensorflow keras


【解决方案1】:

我只回答你的第二个问题,因为有人找到了你的第一个问题的重复项。

MaxPooling2D 从二维数组中获取最大值。以这个输入为例:

import tensorflow as tf

x = tf.random.uniform(minval=0, maxval=10, dtype=tf.int32, shape=(3, 3, 3), seed=42)
<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 将取所有这三个元素的平均值:

gmp = tf.keras.layers.GlobalMaxPooling2D()

gmp(x[..., None])
<tf.Tensor: shape=(3, 1), dtype=int32, numpy=
array([[9],
       [9],
       [9]])>

每个元素都有一个 9,因此该操作对所有三个元素都返回一个 9。对于GlobalAveragePooling2D,它是完全相同的,但需要平均。

gap = tf.keras.layers.GlobalAveragePooling2D()

gap(x[..., None])
<tf.Tensor: shape=(3, 1), dtype=int32, numpy=
array([[3],
       [6],
       [5]])>

【讨论】:

  • 我知道关键的区别是'Max'和'Average',但是我对函数名'Pooling'和'Pool'的语法很好奇。我意识到tf.keras.layers.GlobalMaxPooling2D 有 4 个别名:tf.compat.v1.keras.layers.GlobalMaxPool2Dtf.compat.v1.keras.layers.GlobalMaxPooling2Dtf.compat.v2.keras.layers.GlobalMaxPool2Dtf.compat.v2.keras.layers.GlobalMaxPooling2D,有点多余和不一致。
  • v1.compat 是一种通过 Tensorflow 2.X 使用 Tensorflow 1.X 代码的方法。因此,您不必更改代码,只需更改导入语句,然后您就可以在较新的 Tensorflow 版本中运行旧的 Tensorflow 代码。如果您使用的是 Keras,那么更改将是最小的(如果有的话),因此它解释了为什么所有这些看起来都是相同的(除了引擎盖下的更改)。来源:tensorflow.org/guide/migrate。您的其他问题已经回答,所以我没有提及。
猜你喜欢
  • 2021-05-24
  • 1970-01-01
  • 2018-06-13
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 2023-02-13
  • 2010-10-19
  • 2020-09-15
相关资源
最近更新 更多