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)
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)
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)