code: def load_model(
      filepath: Union[str, os.PathLike],
      filename: str = "model",
      custom_objects: dict = None,
      layer: Optional[int] = None,
  ) -> tf.keras.Model:
      """
      Load TensorFlow model.
  
      Parameters
      ----------
      filepath
          Saved model directory.
      filename
          Name of saved model within the filepath directory.
      custom_objects
          Optional custom objects when loading the TensorFlow model.
      layer
          Optional index of a hidden layer to extract. If not `None`, a
          :py:class:`~alibi_detect.cd.tensorflow.HiddenOutput` model is returned.
  
      Returns
      -------
      Loaded model.
      """
      # TODO - update this to accept tf format - later PR.
      model_dir = Path(filepath)
      model_name = filename + ".h5"
      # Check if model exists
      if model_name not in [f.name for f in model_dir.glob("[!.]*.h5")]:
          raise FileNotFoundError(
              f"{model_name} not found in {model_dir.resolve()}."
          )
      model = tf.keras.models.load_model(
          model_dir.joinpath(model_name), custom_objects=custom_objects
      )
      # Optionally extract hidden layer
      if isinstance(layer, int):
          model = HiddenOutput(model, layer=layer)
      return model
  
imports: import logging
  import os
  from importlib import import_module
  import warnings
  from functools import partial
  from pathlib import Path
  from typing import Callable, Dict, List, Optional, Tuple, Union, Type
  import dill
  import tensorflow
  from tensorflow_probability.python.distributions.distribution import Distribution
  from transformers import AutoTokenizer
  from alibi_detect.ad import AdversarialAE, ModelDistillation
  from alibi_detect.ad.adversarialae import DenseHidden
  from alibi_detect.cd import ChiSquareDrift, ClassifierDrift, KSDrift, MMDDrift, TabularDrift
  from alibi_detect.cd.tensorflow import UAE, HiddenOutput
  from alibi_detect.cd.tensorflow.preprocess import _Encoder
  from alibi_detect.models.tensorflow import PixelCNN, TransformerEmbedding
  from alibi_detect.models.tensorflow.autoencoder import AE, AEGMM, VAE, VAEGMM, DecoderLSTM, EncoderLSTM, Seq2Seq
  from alibi_detect.od import LLR, IForest, Mahalanobis, OutlierAE, OutlierAEGMM, OutlierProphet, OutlierSeq2Seq, OutlierVAE, OutlierVAEGMM, SpectralResidual
  from alibi_detect.od.llr import build_model
  from alibi_detect.utils.tensorflow.kernels import DeepKernel
  from alibi_detect.utils.frameworks import Framework
  from alibi_detect.version import __version__
  from alibi_detect.base import Detector
  from alibi_detect.saving._typing import VALID_DETECTORS
label_desc: Use image node_id 1 for calling a global function with example usage: load_model(filepath, filename, custom_objects, layer) and returns: model