class_docstr: An N-dimensional transpose convolutional module.
  
  Attributes:
     w: Weight variable. Note is `None` until module is connected.
     b: Biases variable. Note is `None` until module is connected.
     input_shape: The input shape of the first set of inputs. Note is `None`
       until module is connected.
class_docstr_tok: ["An","N-dimensional","transpose","convolutional","module",".","Attributes",":","w",":","Weight","variable",".","Note","is","`","None","`","until","module","is","connected",".","b",":","Biases","variable",".","Note","is","`","None","`","until","module","is","connected",".","input_shape",":","The","input","shape","of","the","first","set","of","inputs",".","Note","is","`","None","`","until","module","is","connected","."]
code: def _get_output_shape(self, inputs):
      input_shape = (
          inputs.shape
          if inputs.shape.is_fully_defined()
          else tf.shape(inputs)
      )
  
      if self._channel_index == 1:
          input_size = input_shape[2:]
      else:
          input_size = input_shape[1:-1]
      stride = utils.replicate(
          self._stride, self._num_spatial_dims, "stride"
      )
  
      output_shape = smart_lambda(
          lambda x, y: x * y, input_size, stride
      )
  
      if self._padding == "VALID":
          kernel_shape = utils.replicate(
              self._kernel_shape, self._num_spatial_dims, "kernel_shape"
          )
          rate = utils.replicate(
              self._rate, self._num_spatial_dims, "rate"
          )
          effective_kernel_shape = [
              (shape - 1) * rate + 1
              for (shape, rate) in zip(kernel_shape, rate)
          ]
          output_shape = smart_lambda(
              lambda x, y: x + y - 1,
              output_shape,
              effective_kernel_shape,
          )
  
      return output_shape
  
imports: from typing import Optional, Sequence, Union
  import numpy
  from sonnet.src import base
  from sonnet.src import initializers
  from sonnet.src import once
  from sonnet.src import types
  from sonnet.src import utils
  import tensorflow
label_desc: Use image node_id 5 for calling the ConvNDTranspose obj's underlying member method code with example usage: obj._get_output_shape(inputs) and returns: output_shape