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 compute_output_shape(self, input_shapes):
      input_shape = input_shapes[1]
      return _calculate_output_shape(
          input_shape, self.pool_size, self.strides, self.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 3 for calling the MaxUnpooling2D obj's underlying member method code with example usage: obj.compute_output_shape(input_shapes) and returns: _calculate_output_shape