code: def shape_deconvolution(node):
      input_shape = node.get_only_parent()[0].output_shape
      params = node.kernel_parameters
      dilation = (
          1
          if len(node.parameters.dilation) == 0
          else node.parameters.dilation[0]
      )
  
      ko_h, ko_w = get_kernel_extents(params, dilation)
      o_h = (
          int(params.s_h) * (input_shape.height - 1)
          + ko_h
          - 2 * int(params.p_h)
      )
      o_w = (
          int(params.s_w) * (input_shape.width - 1)
          + ko_w
          - 2 * int(params.p_w)
      )
  
      has_c_o = hasattr(node.parameters, "num_output")
      c = (
          node.parameters.num_output
          if has_c_o
          else input_shape.channels
      )
      return TensorShape(input_shape.batch_size, c, o_h, o_w)
  
imports: from collections import namedtuple
  import math
label_desc: Use image node_id 5 for calling a global function with example usage: shape_deconvolution(node) and returns: TensorShape