code: def on_train_epoch_end(self, trainer, datamodule):
      if (
          self.limit > 0
          and self.n >= 2
          and abs(self.limit - self.m) * self.n
          >= self.std * self.factor
      ):
          trainer.datamodule.batch_size = int(
              trainer.datamodule.batch_size * self.limit / self.m
          )
          loop = trainer._active_loop
          assert loop is not None
          loop._combined_loader = None
          loop.setup_data()
          self.clear()
  
imports: import argparse
  import glob
  import math
  import os
  import time
  import dgl
  import torch
  import torch.nn
  import torch.nn.functional
  from ladies_sampler import LadiesSampler, normalized_edata, PoissonLadiesSampler
  from load_graph import load_dataset
  from model import SAGE
  from pytorch_lightning import LightningDataModule, LightningModule, Trainer
  from pytorch_lightning.callbacks import Callback, EarlyStopping, ModelCheckpoint
  from pytorch_lightning.loggers import TensorBoardLogger
  from torchmetrics.classification import MulticlassF1Score, MultilabelF1Score
label_desc: Use image node_id 8 for calling the BatchSizeCallback obj's underlying member method code with example usage: obj.on_train_epoch_end(trainer, datamodule) without return types