class_docstr: Stop training has reached a desired hit rate.
class_docstr_tok: ["Stop","training","has","reached","a","desired","hit","rate","."]
code: def get_monitor_value(self, logs):
      logs = logs or {}
      monitor_value = logs.get(self.monitor)
      if monitor_value is None:
          logging.warning(
              "Early stopping conditioned on metric `%s` "
              "which is not available. Available metrics are: %s",
              self.monitor,
              ",".join(list(logs.keys())),
          )
      return monitor_value
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import json
  import yaml
  import os
  import sys
  import tensorflow
  from absl import app
  from absl import flags
  from absl import logging
  from os.path import expanduser
  from tensorflow_addons.optimizers import LazyAdam
  from utils.recommendation import constants
  from utils.recommendation import movielens
  from utils.recommendation import ncf_common
  from utils.recommendation import ncf_input_pipeline
  from utils.recommendation import neumf_model
  from utils.flags import core
  from utils.logs import logger
  from utils.logs import mlperf_helper
  from utils.misc import keras_utils
  from utils.misc import model_helpers
  from autodist import AutoDist
  from autodist.strategy.ps_strategy import PS
  from autodist.strategy.ps_lb_strategy import PSLoadBalancing
  from autodist.strategy.partitioned_ps_strategy import PartitionedPS
  from autodist.strategy.all_reduce_strategy import AllReduce
  from autodist.strategy.parallax_strategy import Parallax
label_desc: Use image node_id 4 for calling the CustomEarlyStopping obj's underlying member method code with example usage: obj.get_monitor_value(logs) and returns: monitor_value