code: def set_meta(self, loss_fn, optimizer):
      with self._lock:
          self.set_loss_fn(loss_fn)
          optimizer_cls = SafePickle.loads(optimizer.cls)
          optimizer_args = SafePickle.loads(optimizer.args)
          self.optimizer_cls, self.optimizer_args = (
              optimizer_cls,
              optimizer_args,
          )
          self.set_optimizer(optimizer_cls, optimizer_args)
  
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 2 for calling the Aggregator obj's underlying member method code with example usage: obj.set_meta(loss_fn, optimizer) without return types