code: def forward(self, x, token_type_ids=None, position_ids=None):
      seq_len = paddle.shape(x)[1]
      if position_ids is None:
          position_ids = (
              paddle.arange(seq_len).unsqueeze(0).expand_as(x)
          )
      if token_type_ids is None:
          token_type_ids = paddle.zeros(paddle.shape(x))
  
      word_embs = self.word_embeddings(x)
      position_embs = self.position_embeddings(position_ids)
      token_type_embs = self.token_type_embeddings(token_type_ids)
  
      embs_cmb = word_embs + position_embs + token_type_embs
      embs_out = self.layernorm(embs_cmb)
      embs_out = self.dropout(embs_out)
      return embs_out
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle.nn import ReLU, Swish, GELU
  import math
  from ppdet.core.workspace import register
  from ..shape_spec import ShapeSpec
label_desc: Use image node_id 2 for calling the BertEmbeddings obj's underlying member method code with example usage: obj.forward(x, token_type_ids, position_ids) and returns: embs_out