code: def __init__(self, config, data_dir=None):
      super(LightningMNISTClassifier, self).__init__()
  
      self.data_dir = data_dir or os.getcwd()
      self.lr = config["lr"]
      layer_1, layer_2 = config["layer_1"], config["layer_2"]
      self.batch_size = config["batch_size"]
  
      # mnist images are (1, 28, 28) (channels, width, height)
      self.layer_1 = torch.nn.Linear(28 * 28, layer_1)
      self.layer_2 = torch.nn.Linear(layer_1, layer_2)
      self.layer_3 = torch.nn.Linear(layer_2, 10)
      self.accuracy = Accuracy(
          task="multiclass", num_classes=10, top_k=1
      )
  
imports: import math
  import os
  import torch
  from filelock import FileLock
  import pytorch_lightning
  from torch.nn import functional
  from torch.utils.data import DataLoader, random_split
  from torchmetrics import Accuracy
  from torchvision import transforms
  from torchvision.datasets import MNIST
  from ray.tune.integration.pytorch_lightning import TuneReportCheckpointCallback
  from ray import train, tune
label_desc: Use image node_id 1 to create a new LightningMNISTClassifier object from inherited base classes: pl with example: obj = LightningMNISTClassifier(config, data_dir)