code: def load_server_model(self, client_id, model_path):
      if self.model is not None:
          invalidOperationError(
              False,
              f"Model exists, model uploading from {client_id} ignored.",
          )
      else:
          logging.info(f"Trying to load model from {model_path}")
          if self.secret_key is not None and self.salt is not None:
              logging.error("Not implemented...")
          else:
              self.model = tf.keras.models.load_model(
                  f"{model_path}/model.h5"
              )
          # if loaded, set meta here to make the optimizer bind the model
          with open(f"{model_path}/model.meta", "rb") as meta_file:
              meta = SafePickle.load(meta_file)
              self.loss_fn = meta["loss"]
              self.set_optimizer(
                  meta["optimizer"][0], meta["optimizer"][1]
              )
  
file_path: BigDL/python/ppml/src/bigdl/ppml/fl/nn/tensorflow/aggregator.py
imports: import os
  from bigdl.ppml.utils.safepickle import SafePickle
  import logging
  import threading
  from bigdl.dllib.utils.log4Error import invalidInputError, invalidOperationError
  from bigdl.ppml.fl.nn.utils import ndarray_map_to_tensor_map
  from threading import Condition
  import numpy
  import tensorflow
label_desc: Use image node_id 9 for calling the Aggregator obj's underlying member method code with example usage: obj.load_server_model(client_id, model_path) without return types