13

I just started working with Keras and noticed that there are two layers with very similar names for max pooling: MaxPool and MaxPooling. I was surprised that I couldn't find the difference between these two on Google; so I am wondering what the difference is between the two if any.

Marco Cerliani
  • 14,870
  • 3
  • 25
  • 35
Ken
  • 459
  • 7
  • 15

2 Answers2

12

They are basically the same thing (i.e. aliases of each other). For future readers who might want to know how this could be determined: go to the documentation page of the layer (you can use the list here) and click on "View aliases". This is then accompanied by a blue plus sign (+).

For example, if you go to MaxPool2D documentation and do this, you will find MaxPooling2D in the list of aliases of this layer as follow:

MaxPool aliases in Keras

smile
  • 534
  • 5
  • 11
today
  • 27,220
  • 7
  • 64
  • 86
11

they are the same. you can test it by your own

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

I used 1D max-pooling but the same is valid for all the pooling operation (2D, 3D, avg, global pooling)

Marco Cerliani
  • 14,870
  • 3
  • 25
  • 35