code: def forward(self, blocks, x):
      hidden_x = x
      for layer_idx, (layer, block) in enumerate(
          zip(self.layers, blocks)
      ):
          hidden_x = layer(block, hidden_x)
          is_last_layer = layer_idx == len(self.layers) - 1
          if not is_last_layer:
              hidden_x = F.relu(hidden_x)
              hidden_x = self.dropout(hidden_x)
      return hidden_x
  
file_path: dgl/examples/sampling/node_classification.py
imports: import argparse
  import time
  import dgl
  import dgl.nn
  import torch
  import torch.nn
  import torch.nn.functional
  import torchmetrics.functional
  import tqdm
  from dgl.data import AsNodePredDataset
  from dgl.dataloading import DataLoader, MultiLayerFullNeighborSampler, NeighborSampler
  from ogb.nodeproppred import DglNodePropPredDataset
label_desc: Use image node_id 2 for calling the SAGE obj's underlying member method code with example usage: obj.forward(blocks, x) and returns: hidden_x