code: def run_client(load_model, data_path):
      init_fl_context(2)
      df_train = pd.read_csv(data_path)
      df_train["ID"] = df_train["ID"].astype(str)
      psi = PSI()
      intersection = psi.get_intersection(list(df_train["ID"]))
      df_train = df_train[df_train["ID"].isin(intersection)]
  
      df_x = df_train
      x = df_x.to_numpy(dtype="float32")
      y = None
  
      loss_fn = nn.BCELoss()
  
      if load_model:
          model = torch.load("/tmp/pytorch_client_model_2.pt")
          ppl = Estimator.from_torch(
              client_model=model,
              loss_fn=loss_fn,
              optimizer_cls=torch.optim.SGD,
              optimizer_args={"lr": 1e-4},
              client_model_path="/tmp/pytorch_client_model_2.pt",
          )
          response = ppl.fit(x, y, 5)
      else:
          model = LocalModel(len(df_x.columns))
          ppl = Estimator.from_torch(
              client_model=model,
              loss_fn=loss_fn,
              optimizer_cls=torch.optim.SGD,
              optimizer_args={"lr": 1e-4},
              client_model_path="/tmp/pytorch_client_model_2.pt",
          )
          response = ppl.fit(x, y, 5)
      result = ppl.predict(x)
      print(result[:5])
  
file_path: BigDL/python/ppml/example/pytorch_nn_lr/pytorch_nn_lr_2.py
imports: import logging
  import numpy
  import pandas
  import click
  import torch
  from torch import nn
  from bigdl.ppml.fl.estimator import Estimator
  from bigdl.ppml.fl.nn.fl_context import init_fl_context
  from bigdl.ppml.fl.psi.psi_client import PSI
label_desc: Use image node_id 1 for calling a global function with example usage: run_client(load_model, data_path) without return types