code: def forward(self, graph, feat):
      with graph.local_scope():
          graph.ndata["ci"] = torch.pow(
              graph.out_degrees().float().clamp(min=1), -0.5
          )
          graph.ndata["cj"] = torch.pow(
              graph.in_degrees().float().clamp(min=1), -0.5
          )
          graph.ndata["h"] = feat
          graph.update_all(self.mfunc, self.rfunc)
          h = graph.ndata["h"]
          h = torch.matmul(h, self.weight) + self.bias
          if self.activation is not None:
              h = self.activation(h)
          return h
  
file_path: dgl/benchmarks/benchmarks/model_speed/bench_gcn_udf.py
imports: import time
  import dgl
  import torch
  import torch.nn
  import torch.nn.functional
  from ..None import utils
label_desc: Use image node_id 2 for calling the GraphConv obj's underlying member method code with example usage: obj.forward(graph, feat) and returns: h