code: def training_step(self, batch, batch_idx):
      x, y = batch
      y_hat = self.backbone(x)
      loss = self.cal_loss(y_hat, y, self.hard_mining)
      self.log("train_loss", loss, on_epoch=True)
      return loss
  
file_path: insightface/reconstruction/gaze/models.py
imports: import pytorch_lightning
  from pytorch_lightning.callbacks import ModelCheckpoint
  from pytorch_lightning.callbacks import LearningRateMonitor
  from pytorch_lightning.loggers import TensorBoardLogger
  import torch
  import torch.nn
  import timm
label_desc: Use image node_id 4 for calling the GazeModel obj's underlying member method code with example usage: obj.training_step(batch, batch_idx) and returns: loss