code: def model_creator(config):
      (
          users,
          items,
          user_num,
          item_num,
          sparse_features,
          dense_features,
          total_cols,
      ) = process_users_items(config["data_dir"], config["dataset"])
      sparse_feats_input_dims, num_dense_feats = get_input_dims(
          users, items, sparse_features, dense_features
      )
      model = NCF(
          user_num=user_num,
          item_num=item_num,
          factor_num=config["factor_num"],
          num_layers=config["num_layers"],
          dropout=config["dropout"],
          model="NeuMF-end",
          sparse_feats_input_dims=sparse_feats_input_dims,
          sparse_feats_embed_dims=config["sparse_feats_embed_dims"],
          num_dense_feats=num_dense_feats,
      )
      model.train()
      return model
  
file_path: BigDL/python/orca/tutorial/NCF/pytorch_train_dataloader.py
imports: import torch.nn
  import torch.optim
  import torch.utils.data
  from pytorch_dataset import load_dataset, process_users_items, get_input_dims
  from pytorch_model import NCF
  from utils import *
  from bigdl.orca.learn.pytorch import Estimator
  from bigdl.orca.learn.metrics import Accuracy, Precision, Recall
label_desc: Use image node_id 3 for calling a global function with example usage: model_creator(config) and returns: model