code: def ConvertBetweenDataFormats(x, data_format_src, data_format_dst):
      """Converts 4D/5D tensor between data formats."""
  
      valid_data_formats = [
          "NHWC",
          "NCHW",
          "HWNC",
          "HWCN",
          "NDHWC",
          "NCDHW",
      ]
      if len(data_format_src) != len(data_format_dst):
          raise ValueError(
              "data_format_src and data_format_dst must have the same dimension, got"
              " %s and %s."
              % (len(data_format_src), len(data_format_dst))
          )
      if data_format_src not in valid_data_formats:
          raise ValueError(
              "data_format_src must be of %s, got %s."
              % (valid_data_formats, data_format_src)
          )
      if data_format_dst not in valid_data_formats:
          raise ValueError(
              "data_format_dst must be of %s, got %s."
              % (valid_data_formats, data_format_dst)
          )
      if len(x.shape) != 4 and len(x.shape) != 5:
          raise ValueError(
              "x must be 4D or 5D, got shape %s." % x.shape
          )
      if len(x.shape) != len(data_format_src):
          raise ValueError(
              "x must be the same dimensions as data_format_src (%s), got shape %s."
              % (len(data_format_src), x.shape)
          )
  
      if data_format_src == data_format_dst:
          return x
  
      dim_map = {d: i for i, d in enumerate(data_format_src)}
      transpose_dims = [dim_map[d] for d in data_format_dst]
      return np.transpose(x, transpose_dims)
  
imports: import numpy
  from six.moves import range
label_desc: Use image node_id 1 for calling a global function with example usage: ConvertBetweenDataFormats(x, data_format_src, data_format_dst) and returns: np, x