code: def manual_optimization_training_step(self, batch, batch_idx):
      opt = self.optimizers()
      opt.zero_grad()
      inputs, labels = batch
      outputs = self.model(inputs)
      loss = self.criterion(outputs, labels)
      self.log("train_loss", loss)
      self.manual_backward(loss)
      opt.step()
  
imports: from os import path
  import torch
  import torchvision
  import torchvision.transforms
  from lightning.pytorch import LightningDataModule, LightningModule, cli_lightning_logo
  from lightning.pytorch.cli import LightningCLI
  from lightning.pytorch.profilers.pytorch import PyTorchProfiler
  from lightning.pytorch.utilities.model_helpers import get_torchvision_model
label_desc: Use image node_id 3 for calling the ModelToProfile obj's underlying member method code with example usage: obj.manual_optimization_training_step(batch, batch_idx) without return types