code: def embed_positions(
      self,
      input_ids: Optional[TFModelInputType] = None,
      inputs_embeds: Optional[Union[np.ndarray, tf.Tensor]] = None,
      past_key_values_length: Optional[int] = None,
  ) -> tf.Tensor:
      if input_ids is not None:
          position_ids = _create_position_ids_from_input_ids(
              input_ids, past_key_values_length, self.padding_idx
          )
      else:
          position_ids = _create_position_ids_from_inputs_embeds(
              inputs_embeds, past_key_values_length, self.padding_idx
          )
  
      positions = tf.gather(
          self._embed_positions_weights, position_ids, axis=0
      )
      return positions
  
imports: import math
  import random
  from typing import Any, Optional, Tuple, Union
  import numpy
  import tensorflow
  from ...activations_tf import get_tf_activation
  from ...file_utils import DUMMY_INPUTS, add_code_sample_docstrings, add_start_docstrings, add_start_docstrings_to_model_forward, replace_return_docstrings
  from ...modeling_tf_outputs import TFBaseModelOutputWithPastAndCrossAttentions, TFCausalLMOutputWithCrossAttentions
  from ...modeling_tf_utils import TFCausalLanguageModelingLoss, TFModelInputType, TFPreTrainedModel, TFSharedEmbeddings, get_initializer, keras_serializable, unpack_inputs
  from ...tf_utils import shape_list, stable_softmax
  from ...utils import logging
  from .configuration_xglm import XGLMConfig
label_desc: Use image node_id 5 for calling the TFXGLMMainLayer obj's underlying member method code with example usage: obj.embed_positions(input_ids, inputs_embeds, past_key_values_length) and returns: positions