code: def main(config="../../config.yaml", namespace=""):
      # obtain config
      if isinstance(config, str):
          config = test_utils.load_job_config(config)
      parties = config.parties
      guest = parties.guest[0]
      host = parties.host[0]
      arbiter = parties.arbiter[0]
  
      epochs = 5
      batch_size = 64
      in_feat = 30
      out_feat = 16
      lr = 0.01
  
      pipeline = FateFlowPipeline().set_parties(
          guest=guest, host=host, arbiter=arbiter
      )
  
      reader_0 = Reader(
          "reader_0", runtime_parties=dict(guest=guest, host=host)
      )
      reader_0.guest.task_parameters(
          namespace=f"experiment{namespace}", name="breast_homo_guest"
      )
      reader_0.hosts[0].task_parameters(
          namespace=f"experiment{namespace}", name="breast_homo_host"
      )
  
      conf = get_config_of_default_runner(
          algo="fedavg",
          model=Sequential(
              nn.Linear(in_feat, out_feat),
              nn.ReLU(),
              nn.Linear(out_feat, 1),
              nn.Sigmoid(),
          ),
          loss=nn.BCELoss(),
          optimizer=optim.Adam(lr=lr),
          training_args=TrainingArguments(
              num_train_epochs=epochs,
              per_device_train_batch_size=batch_size,
          ),
          fed_args=FedAVGArguments(),
          task_type="binary",
      )
  
      homo_nn_0 = HomoNN(
          "nn_0",
          runner_conf=conf,
          train_data=reader_0.outputs["output_data"],
      )
  
      homo_nn_1 = HomoNN(
          "nn_1",
          predict_model_input=homo_nn_0.outputs["train_model_output"],
          test_data=reader_0.outputs["output_data"],
      )
  
      evaluation_0 = Evaluation(
          "eval_0",
          runtime_parties=dict(guest=guest, host=host),
          metrics=["auc"],
          input_data=[homo_nn_1.outputs["predict_data_output"]],
      )
  
      pipeline.add_tasks([reader_0, homo_nn_0, homo_nn_1, evaluation_0])
      pipeline.compile()
      pipeline.fit()
  
      print(pipeline.get_task_info("eval_0").get_output_metric())
  
file_path: FATE/examples/pipeline/homo_nn/test_nn_binary.py
imports: import argparse
  from fate_client.pipeline.utils import test_utils
  from fate_client.pipeline.components.fate.evaluation import Evaluation
  from fate_client.pipeline.components.fate.reader import Reader
  from fate_client.pipeline import FateFlowPipeline
  from fate_client.pipeline.components.fate.nn.torch import nn, optim
  from fate_client.pipeline.components.fate.nn.torch.base import Sequential
  from fate_client.pipeline.components.fate.homo_nn import HomoNN, get_config_of_default_runner
  from fate_client.pipeline.components.fate.nn.algo_params import TrainingArguments, FedAVGArguments
label_desc: Use image node_id 1 for calling a global function with example usage: main(config, namespace) without return types