class_docstr: Unpool the outputs of a maximum pooling operation.
  
  This function currently does not support outputs of MaxPoolingWithArgMax in
  following cases:
  - include_batch_in_index equals true.
  - input_shape is not divisible by strides if padding is "SAME".
  - (input_shape - pool_size) is not divisible by strides if padding is "VALID".
  - The max pooling operation results in duplicate values in updates and mask.
  
  Args:
    updates: The pooling result from max pooling.
    mask: the argmax result corresponds to above max values.
    pool_size: The filter that max pooling was performed with. Default: (2, 2).
    strides: The strides that max pooling was performed with. Default: (2, 2).
    padding: The padding that max pooling was performed with. Default: "SAME".
  Input shape:
    4D tensor with shape: `(batch_size, height, width, channel)`.
  Output shape:
    4D tensor with the same shape as the input of max pooling operation.
code: def __init__(
      self,
      pool_size: Union[int, Iterable[int]] = (2, 2),
      strides: Union[int, Iterable[int]] = (2, 2),
      padding: str = "SAME",
      **kwargs,
  ):
      super(MaxUnpooling2D, self).__init__(**kwargs)
  
      if padding != "SAME" and padding != "VALID":
          raise ValueError(
              'Padding must be a string from: "SAME", "VALID"'
          )
  
      self.pool_size = normalize_tuple(pool_size, 2, "pool_size")
      self.strides = normalize_tuple(strides, 2, "strides")
      self.padding = padding
  
file_path: addons/tensorflow_addons/layers/max_unpooling_2d.py
imports: import tensorflow
  from typeguard import typechecked
  from typing import Union, Iterable
  from tensorflow_addons.utils.keras_utils import normalize_tuple
label_desc: Use image node_id 1 to create a new MaxUnpooling2D object from inherited base classes: tf.keras.layers with example: obj = MaxUnpooling2D(pool_size, strides, padding)