code: def model_main(
      activation="relu", width=1000, depth=2, lr=0.5, **kwargs
  ):
      """Main method; this sequences the basic steps often
  
      - create the model and optimizer,
      - train and record metrics,
      - plot all metrics.
  
      """
      print(
          f"Building model with width = {width}, learning rate = {lr}"
      )
  
      model = build_model(activation, width, depth)
      optimizer = tf.optimizers.SGD(lr)
  
      with uv.start_run() as r:
          MLFlowReporter().report_params(
              {
                  **kwargs,
                  **{
                      "depth": depth,
                      "width": width,
                      "lr": lr,
                      "activation": activation,
                  },
              }
          )
  
          train_and_log(model, optimizer, **kwargs)
  
imports: from __future__ import division, print_function
  import getpass
  from typing import Dict, Optional
  import fs
  import tensorflow
  import tensorflow_datasets
  import tqdm
  import uv
  import uv.tensorflow.reporter
  import uv.util
  from absl import app
  from uv.fs.reporter import FSReporter
  from uv.mlflow.reporter import MLFlowReporter
  from trainer import cli
label_desc: Use image node_id 15 for calling a global function with example usage: model_main(activation, width, depth, lr) without return types