code: def _get_embed_dim(
      in_proj_weights,
      q_proj_weights,
      k_proj_weights,
      v_proj_weights,
      query,
  ):
      pre_embed_dim = query.shape[-1]
      if ivy.exists(in_proj_weights):
          embed_dim = in_proj_weights.shape[0] / 3
      elif all(
          ivy.exists(x)
          for x in [q_proj_weights, k_proj_weights, v_proj_weights]
      ):
          embed_dim = q_proj_weights.shape[0]
      else:
          embed_dim = None
      return pre_embed_dim, embed_dim
  
imports: from typing import Optional, Tuple, Union, Sequence
  import ivy
  from ivy.utils.backend import current_backend
  from ivy.func_wrapper import handle_array_function, handle_partial_mixed_function, inputs_to_ivy_arrays, to_native_arrays_and_back, inputs_to_native_shapes, handle_out_argument, handle_nestable, handle_array_like_without_promotion, handle_device, handle_backend_invalid
  from ivy.utils.exceptions import handle_exceptions
label_desc: Use image node_id 1 for calling a global function with example usage: _get_embed_dim(in_proj_weights, q_proj_weights, k_proj_weights, v_proj_weights, query) and returns: pre_embed_dim,  embed_dim