code: def collate(self, samples):
      # The input samples is a list of pairs (graph, label).
      graphs, labels = map(list, zip(*samples))
      labels = torch.stack(labels)
  
      tab_sizes_n = [g.num_nodes() for g in graphs]
      tab_snorm_n = [
          torch.FloatTensor(size, 1).fill_(1.0 / size)
          for size in tab_sizes_n
      ]
      snorm_n = torch.cat(tab_snorm_n).sqrt()
      batched_graph = dgl.batch(graphs)
  
      return batched_graph, labels, snorm_n
  
imports: import argparse
  import random
  import dgl
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.optim
  from dgl.dataloading import GraphDataLoader
  from ogb.graphproppred import Evaluator
  from ogb.graphproppred.mol_encoder import AtomEncoder
  from preprocessing import prepare_dataset
  from torch.utils.data import Dataset
  from tqdm import tqdm
label_desc: Use image node_id 2 for calling the PCBADataset obj's underlying member method code with example usage: obj.collate(samples) and returns: batched_graph,  labels,  snorm_n