code: def __init__(
      self,
      params=None,
      lr=1,
      max_iter=20,
      max_eval=None,
      tolerance_grad=1e-07,
      tolerance_change=1e-09,
      history_size=100,
      line_search_fn=None,
  ):
      TorchOptimizer.__init__(self)
      self.param_dict["lr"] = lr
      self.param_dict["max_iter"] = max_iter
      self.param_dict["max_eval"] = max_eval
      self.param_dict["tolerance_grad"] = tolerance_grad
      self.param_dict["tolerance_change"] = tolerance_change
      self.param_dict["history_size"] = history_size
      self.param_dict["line_search_fn"] = line_search_fn
      self.torch_class = type(self).__bases__[0]
  
      if params is None:
          return
  
      params = self.check_params(params)
  
      self.torch_class.__init__(self, params, **self.param_dict)
  
imports: from torch import optim
  from fate.components.components.nn.torch.base import TorchOptimizer
label_desc: Use image node_id 1 to create a new LBFGS object from inherited base classes: optim, TorchOptimizer with example: obj = LBFGS(params, lr, max_iter, max_eval, tolerance_grad, tolerance_change, history_size, line_search_fn)