class_docstr: PositionEmbedding represents the positional information of tokens
  consisting of two optional types: constant(untrainable) and trainable.
class_docstr_tok: ["PositionEmbedding","represents","the","positional","information","of","tokens","consisting","of","two","optional","types",":","constant","(","untrainable",")","and","trainable","."]
docstr: Args:
     inputs: [batch_size, seq_x_len, embed_dim]
  Return:
    pos_embed: [batch_size, seq_x_len, embed_dim]
docstr_tok: ["Args",":","inputs",":","[","batch_size",",","seq_x_len",",","embed_dim","]","Return",":","pos_embed",":","[","batch_size",",","seq_x_len",",","embed_dim","]"]
code: def call(self, inputs, training=None, mask=None):
      """
      Args:
         inputs: [batch_size, seq_x_len, embed_dim]
      Return:
        pos_embed: [batch_size, seq_x_len, embed_dim]
      """
      seq_len = shape_list(inputs)[1]
      pos_embed = self.pos_embed[:, :seq_len, :]
      return pos_embed
  
file_path: delta/delta/layers/sub_tf.py
imports: from absl import logging
  import delta.compat
  import numpy
  from delta.layers.base_layer import Layer
  from delta.layers.utils_tf import shape_list
label_desc: Use image node_id 3 for calling the PositionEmbedding obj's underlying member method code with example usage: obj.call(inputs, training, mask) and returns: pos_embed