code: def training_step(self, batch, batch_idx):
      (xb, yb), records = batch
      preds = self(xb, yb)
  
      loss = self.compute_loss(preds, yb)
      self.log("train_loss", loss)
  
      return loss
  
imports: from icevision.imports import *
  from icevision.utils import *
  from icevision.metrics import *
  from icevision.engines.lightning.lightning_model_adapter import LightningModelAdapter
  from icevision.models.torchvision.loss_fn import loss_fn
  from icevision.core.record_components import InstanceMasksRecordComponent, BBoxesRecordComponent
  from icevision.core.mask import MaskArray
  from icevision.core.bbox import BBox
label_desc: Use image node_id 4 for calling the RCNNModelAdapter obj's underlying member method code with example usage: obj.training_step(batch, batch_idx) and returns: loss