Example #1
0
 def construct():  # pylint: disable=invalid-name
     """Function for constructing shared ModelTypes."""
     start_time = datetime.datetime.now()
     saved_model = None
     keras_model = None
     eval_saved_model = None
     if model_path:
         if tf.version.VERSION.split('.')[0] == '1':
             saved_model = tf.compat.v1.saved_model.load_v2(model_path,
                                                            tags=[tag])
         else:
             saved_model = tf.saved_model.load(model_path, tags=[tag])
         try:
             keras_model = tf.keras.experimental.load_from_saved_model(
                 model_path)
         except tf.errors.NotFoundError:
             pass
     if eval_saved_model_path:
         eval_saved_model = load.EvalSavedModel(
             eval_saved_model_path,
             include_default_metrics,
             additional_fetches=additional_fetches,
             blacklist_feature_fetches=blacklist_feature_fetches)
         if add_metrics_callbacks:
             eval_saved_model.register_add_metric_callbacks(
                 add_metrics_callbacks)
         eval_saved_model.graph_finalize()
     end_time = datetime.datetime.now()
     model_load_seconds_callback(
         int((end_time - start_time).total_seconds()))
     return types.ModelTypes(saved_model=saved_model,
                             keras_model=keras_model,
                             eval_saved_model=eval_saved_model)
 def construct():  # pylint: disable=invalid-name
   """Function for constructing shared ModelTypes."""
   start_time = datetime.datetime.now()
   saved_model = None
   keras_model = None
   eval_saved_model = None
   if tags == [eval_constants.EVAL_TAG]:
     eval_saved_model = load.EvalSavedModel(
         eval_saved_model_path,
         include_default_metrics,
         additional_fetches=additional_fetches,
         blacklist_feature_fetches=blacklist_feature_fetches)
     if add_metrics_callbacks:
       eval_saved_model.register_add_metric_callbacks(add_metrics_callbacks)
     eval_saved_model.graph_finalize()
   else:
     try:
       keras_model = tf.keras.models.load_model(eval_saved_model_path)
     except Exception:  # pylint: disable=broad-except
       saved_model = tf.compat.v1.saved_model.load_v2(
           eval_saved_model_path, tags=tags)
   end_time = datetime.datetime.now()
   model_load_seconds_callback(int((end_time - start_time).total_seconds()))
   return types.ModelTypes(
       saved_model=saved_model,
       keras_model=keras_model,
       eval_saved_model=eval_saved_model)
Example #3
0
 def construct():  # pylint: disable=invalid-name
   """Function for constructing a model agnostic eval graph."""
   start_time = datetime.datetime.now()
   model_agnostic_eval = ModelAgnosticEvaluateGraph(add_metrics_callbacks,
                                                    config)
   end_time = datetime.datetime.now()
   model_load_seconds_callback(int((end_time - start_time).total_seconds()))
   return types.ModelTypes(
       saved_model=None,
       keras_model=None,
       eval_saved_model=model_agnostic_eval)
Example #4
0
 def construct():  # pylint: disable=invalid-name
     """Function for constructing shared ModelTypes."""
     start_time = datetime.datetime.now()
     saved_model = None
     keras_model = None
     eval_saved_model = None
     # If we are evaluating on TPU, initialize the TPU.
     # TODO(b/143484017): Add model warmup for TPU.
     if tf.saved_model.TPU in tags:
         tf.tpu.experimental.initialize_tpu_system()
     if eval_constants.EVAL_TAG in tags:
         eval_saved_model = load.EvalSavedModel(
             eval_saved_model_path,
             include_default_metrics,
             additional_fetches=additional_fetches,
             blacklist_feature_fetches=blacklist_feature_fetches,
             tags=tags)
         if add_metrics_callbacks:
             eval_saved_model.register_add_metric_callbacks(
                 add_metrics_callbacks)
         eval_saved_model.graph_finalize()
     else:
         # TODO(b/141524386, b/141566408): TPU Inference is not supported
         # for Keras saved_model yet.
         try:
             keras_model = tf.keras.models.load_model(
                 eval_saved_model_path)
             # In some cases, tf.keras.models.load_model can successfully load a
             # saved_model but it won't actually be a keras model.
             if not isinstance(keras_model, tf.keras.models.Model):
                 keras_model = None
         except Exception:  # pylint: disable=broad-except
             keras_model = None
         if keras_model is None:
             saved_model = tf.compat.v1.saved_model.load_v2(
                 eval_saved_model_path, tags=tags)
     end_time = datetime.datetime.now()
     model_load_seconds_callback(
         int((end_time - start_time).total_seconds()))
     return types.ModelTypes(saved_model=saved_model,
                             keras_model=keras_model,
                             eval_saved_model=eval_saved_model)