code: def new_max_pool(self, name:str, kernel_size: tuple, stride_size: tuple, padding='SAME',
                       input_layer_name: str=None):
          
  
          self.__validate_padding(padding)
  
          input_layer = self.__network.get_layer(input_layer_name)
  
          output = tf.nn.max_pool(input_layer,
                                  ksize=[1, kernel_size[1], kernel_size[0], 1],
                                  strides=[1, stride_size[1], stride_size[0], 1],
                                  padding=padding,
                                  name=name)
  
          self.__network.add_layer(name, layer_output=output)
docs: Creates a new max pooling layer.
          :param name: name for the layer.
          :param kernel_size: tuple containing the size of the kernel (Width, Height)
          :param stride_size: tuple containing the size of the stride (Width, Height)
          :param padding: Type of padding. Available values are: ('SAME', 'VALID')
          :param input_layer_name: name of the input layer for this layer. If None, it will take the last added layer of
          the network.