class_docstr: This is Field-Aware Factorization Machine Module for FFM.
code: def _get_input_x_emb(
      self,
      token_input_x_emb,
      float_input_x_emb,
      token_seq_input_x_emb,
      float_seq_input_x_emb,
  ):
      # merge different types of field-aware embeddings
      input_x_emb = (
          []
      )  # [num_fields: [batch_size, num_fields, emb_dim]]
  
      zip_args = []
      if len(self.token_feature_names) > 0:
          zip_args.append(token_input_x_emb)
      if len(self.float_feature_names) > 0:
          zip_args.append(float_input_x_emb)
      if len(self.token_seq_feature_names) > 0:
          zip_args.append(token_seq_input_x_emb)
      if len(self.float_seq_feature_names) > 0:
          zip_args.append(float_seq_input_x_emb)
  
      for tensors in zip(*zip_args):
          input_x_emb.append(torch.cat(tensors, dim=1))
  
      return input_x_emb
  
imports: import numpy
  import torch
  import torch.nn
  from torch.nn.init import xavier_normal_, constant_
  from recbole.model.abstract_recommender import ContextRecommender
label_desc: Use image node_id 3 for calling the FieldAwareFactorizationMachine obj's underlying member method code with example usage: obj._get_input_x_emb(token_input_x_emb, float_input_x_emb, token_seq_input_x_emb, float_seq_input_x_emb) and returns: input_x_emb