class_docstr: Benchmark NCF model using synthetic data.
code: def __init__(self, output_dir=None, default_flags=None, **kwargs):
      default_flags = {}
      default_flags["dataset"] = "ml-20m"
      default_flags["num_gpus"] = 1
      default_flags["train_epochs"] = 8
      default_flags["batch_size"] = 99000
      default_flags["eval_batch_size"] = 160000
      default_flags["learning_rate"] = 0.00382059
      default_flags["beta1"] = 0.783529
      default_flags["beta2"] = 0.909003
      default_flags["epsilon"] = 1.45439e-07
      default_flags["layers"] = [256, 256, 128, 64]
      default_flags["num_factors"] = 64
      default_flags["hr_threshold"] = 0.635
      default_flags["use_synthetic_data"] = True
  
      super(NCFKerasSynth, self).__init__(
          output_dir=output_dir, default_flags=default_flags, **kwargs
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import time
  from absl import flags
  from absl.testing import flagsaver
  import tensorflow
  from utils import benchmark_wrappers
  from utils.recommendation import ncf_common
  from utils.recommendation import ncf_keras_main
  from utils.flags import core
label_desc: Use image node_id 1 to create a new NCFKerasSynth object from inherited base classes: NCFKerasBenchmarkBase with example: obj = NCFKerasSynth(output_dir, default_flags)