code: def train(model):
      from torchvision.datasets import MNIST
      from torchvision.transforms import ToTensor
  
      train_set = MNIST(
          root="/tmp/data/MNIST",
          train=True,
          transform=ToTensor(),
          download=True,
      )
      val_set = MNIST(
          root="/tmp/data/MNIST",
          train=False,
          transform=ToTensor(),
          download=False,
      )
  
      train_loader = torch.utils.data.DataLoader(
          train_set,
          batch_size=64,
          shuffle=True,
          pin_memory=torch.cuda.is_available(),
          num_workers=4,
      )
      val_loader = torch.utils.data.DataLoader(
          val_set,
          batch_size=64,
          shuffle=False,
          pin_memory=torch.cuda.is_available(),
          num_workers=4,
      )
  
      # MPS backend currently does not support all operations used in this example.
      # If you want to use MPS, set accelerator='auto' and also set PYTORCH_ENABLE_MPS_FALLBACK=1
      accelerator = (
          "cpu" if torch.backends.mps.is_available() else "auto"
      )
  
      trainer = MyCustomTrainer(
          accelerator=accelerator,
          devices="auto",
          limit_train_batches=10,
          limit_val_batches=20,
          max_epochs=3,
      )
      trainer.fit(model, train_loader, val_loader)
  
file_path: pytorch-lightning/examples/fabric/build_your_own_trainer/run.py
imports: import lightning
  import torch
  from torchmetrics.functional.classification.accuracy import accuracy
  from trainer import MyCustomTrainer
label_desc: Use image node_id 1 for calling a global function with example usage: train(model) without return types