code: def conv2d_transpose(
      x: Union[tf.Tensor, tf.Variable],
      filters: Union[tf.Tensor, tf.Variable],
      strides: Union[int, Tuple[int, int]],
      padding: Union[str, int, Sequence[Tuple[int, int]]],
      /,
      *,
      output_shape: Optional[
          Union[ivy.NativeShape, Sequence[int]]
      ] = None,
      filter_format: str = "channel_last",
      data_format: str = "NHWC",
      dilations: Union[int, Tuple[int, int]] = 1,
      bias: Optional[Union[tf.Tensor, tf.Variable]] = None,
      out: Optional[Union[tf.Tensor, tf.Variable]] = None,
  ):
      if ivy.dev(x) == "cpu" and (
          (dilations > 1)
          if isinstance(dilations, int)
          else any(d > 1 for d in dilations)
      ):
          raise ivy.utils.exceptions.IvyException(
              "Tensorflow does not support dilations greater than 1 when device is cpu"
          )
      permuted_x = False
      if data_format == "NCHW" and ivy.dev(x) == "cpu":
          x = tf.transpose(x, (0, 2, 3, 1))
          data_format = "NHWC"
          permuted_x = True
      if filter_format == "channel_first":
          filters = tf.transpose(filters, (2, 3, 1, 0))
      output_shape, padding = _transpose_out_pad(
          x.shape,
          filters.shape,
          strides,
          padding,
          2,
          dilations,
          data_format,
      )
      res = tf.nn.conv2d_transpose(
          x,
          filters,
          output_shape,
          strides,
          padding,
          data_format,
          dilations,
      )
      if bias is not None:
          if data_format[1] == "C":
              bias = tf.reshape(bias, [1, -1, 1, 1])
          res = tf.math.add(res, bias)
      if permuted_x:
          return tf.transpose(res, (0, 3, 1, 2))
      return res
  
imports: from typing import Optional, Tuple, Union, Sequence
  import tensorflow
  from tensorflow.python.types.core import Tensor
  import ivy
  from ivy.func_wrapper import with_supported_dtypes, with_unsupported_dtypes
  from .None import backend_version
  from ivy.functional.ivy.layers import _deconv_length, _get_x_data_format
label_desc: Use image node_id 10 for calling a global function with example usage: conv2d_transpose() and returns: res, tf