code: def forward(
      self,
      node_features: torch.FloatTensor,
      edge_index: torch.LongTensor,
      edges_weight: torch.LongTensor,
  ):
      h = node_features
      for gcn, relu, bn in zip(self.gcns, self.relus, self.bns):
          h = gcn(h, edge_index, edges_weight)
          h = bn(h.transpose(1, -1)).transpose(1, -1)
          h = relu(h)
      return h
  
imports: import torch
  import numpy
  import torch.nn
  from typing import List
  import torch.nn.functional
  from torch_geometric.nn import GCNConv
label_desc: Use image node_id 2 for calling the WeightedGCNBlock obj's underlying member method code with example usage: obj.forward(node_features, edge_index, edges_weight) and returns: h