code: def _recover_model(self, model, agg_model):
      if isinstance(model, np.ndarray) or isinstance(model, t.Tensor):
          return agg_model
      elif isinstance(model, t.nn.Module):
          if self.require_grad:
              for agg_p, p in zip(
                  agg_model,
                  [p for p in model.parameters() if p.requires_grad],
              ):
                  p.data.copy_(t.Tensor(agg_p))
          else:
              for agg_p, p in zip(agg_model, model.parameters()):
                  p.data.copy_(t.Tensor(agg_p))
          return model
      else:
          return agg_model
  
imports: import logging
  from typing import Optional
  import numpy
  import torch
  from fate.arch import Context
  from fate.arch.protocol.secure_aggregation._secure_aggregation import SecureAggregatorClient
  from fate.arch.protocol.secure_aggregation._secure_aggregation import SecureAggregatorServer
label_desc: Use image node_id 4 for calling the BaseAggregatorClient obj's underlying member method code with example usage: obj._recover_model(model, agg_model) and returns: agg_model, model, agg_model