code: def validation_step(self, batch, batch_idx: int):
      y_hat = self(batch.x, batch.adjs_t)
      self.val_acc(y_hat.softmax(dim=-1), batch.y)
      self.log(
          "val_acc",
          self.val_acc,
          on_step=False,
          on_epoch=True,
          prog_bar=True,
          sync_dist=True,
      )
  
imports: import argparse
  import glob
  import os
  import os.path
  import time
  from typing import List, NamedTuple, Optional
  import numpy
  import torch
  import torch.nn.functional
  from ogb.lsc import MAG240MDataset, MAG240MEvaluator
  import pytorch_lightning
  from pytorch_lightning import LightningDataModule, LightningModule, Trainer, seed_everything
  from pytorch_lightning.callbacks import ModelCheckpoint
  from torchmetrics import Accuracy
  from torch import Tensor
  from torch.nn import BatchNorm1d, Dropout, Linear, ModuleList, ReLU, Sequential
  from torch.optim.lr_scheduler import StepLR
  from torch_geometric.data import NeighborSampler
  from torch_geometric.nn import GATConv, SAGEConv
  from torch_sparse import SparseTensor
  from tqdm.auto import tqdm
  from root import ROOT
label_desc: Use image node_id 4 for calling the RGNN obj's underlying member method code with example usage: obj.validation_step(batch, batch_idx) without return types