docs: def transpose(self, name=None):
      """Returns matching `Conv2DTranspose` module.
  
      Args:
        name: Optional string assigning name of transpose module. The default name
          is constructed by appending "_transpose" to `self.name`.
  
      Returns:
        `Conv2DTranspose` module.
  
      Raises:
       base.NotSupportedError: If `rate` in any dimension > 1.
      """
      if any(x > 1 for x in self._rate):
        raise base.NotSupportedError(
            "Cannot transpose a dilated convolution module.")
  
      if any(p != self._conv_op_padding for p in self._padding):
        raise base.NotSupportedError(
            "Cannot tranpose a convolution using mixed paddings or paddings "
            "other than SAME or VALID.")
  
      if name is None:
        name = self.module_name + "_transpose"
  
      def output_shape():
        if self._data_format == DATA_FORMAT_NCHW:
          return self.input_shape[2:4]
        else:  # data_format == DATA_FORMAT_NHWC
          return self.input_shape[1:3]
  
      return Conv2DTranspose(output_channels=lambda: self._input_channels,
                             output_shape=output_shape,
                             kernel_shape=self._kernel_shape,
                             stride=self._stride,
                             padding=self._conv_op_padding,
                             use_bias=self._use_bias,
                             initializers=self._initializers,
                             partitioners=self._partitioners,
                             regularizers=self._regularizers,
                             data_format=self._data_format,
                             custom_getter=self._custom_getter,
                             name=name)