Keras 中的 MaxPool 和 MaxPooling 层有什么区别?

Ken*_*Ken 14 machine-learning deep-learning keras tensorflow tf.keras

我刚开始使用并注意到有两个层的 max-pooling 名称非常相似:MaxPoolMaxPooling. 我很惊讶我在谷歌上找不到这两者之间的区别;所以我想知道两者之间有什么区别(如果有的话)。

tod*_*day 14

它们基本上是同一件事(即彼此的别名)。对于可能想知道如何确定这一点的未来读者:转到图层的文档页面(您可以使用此处的列表)并单击“查看别名”。然后伴随着一个蓝色加号 (+)。

例如,如果您转到MaxPool2D 文档并执行此操作,您将MaxPooling2D在该层的别名列表中找到如下:

Keras 中的 MaxPool 别名


Mar*_*ani 11

他们是一样的。你可以自己测试

import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import *

# create dummy data
X = np.random.uniform(0,1, (32,5,3)).astype(np.float32)

pool1 = MaxPool1D()(X)
pool2 = MaxPooling1D()(X)

tf.reduce_all(pool1 == pool2) # True
Run Code Online (Sandbox Code Playgroud)

我使用了 1D 最大池化,但同样适用于所有池化操作(2D、3D、平均、全局池化)