class_docstr: Construct the embeddings from word, position and token_type embeddings.
      
class_docstr_tok: ["Construct","the","embeddings","from","word",",","position","and","token_type","embeddings","."]
code: def forward(self, concat_embeddings, concat_type=None):
      _ = concat_type
      _, seq_length = concat_embeddings.size(0), concat_embeddings.size(
          1
      )
      # if concat_type is None:
      #     concat_type = torch.zeros(batch_size, concat_type).to(concat_embeddings.device)
  
      position_ids = torch.arange(
          seq_length, dtype=torch.long, device=concat_embeddings.device
      )
      position_ids = position_ids.unsqueeze(0).expand(
          concat_embeddings.size(0), -1
      )
  
      # token_type_embeddings = self.token_type_embeddings(concat_type)
      position_embeddings = self.position_embeddings(position_ids)
  
      embeddings = (
          concat_embeddings + position_embeddings
      )  # + token_type_embeddings
      # embeddings = self.LayerNorm(embeddings)
      embeddings = self.dropout(embeddings)
      return embeddings
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import logging
  import torch
  from torch import nn
  from towhee.models.drl.until_module import LayerNorm
  from collections import OrderedDict
label_desc: Use image node_id 2 for calling the CrossEmbeddings obj's underlying member method code with example usage: obj.forward(concat_embeddings, concat_type) and returns: embeddings