code: def forward(self, g):
      with g.local_scope():
          g.edata["tmp"] = g.edata["m"] * self.dense_rbf(g.edata["rbf"])
          g.update_all(fn.copy_e("tmp", "x"), fn.sum("x", "t"))
  
          for layer in self.dense_layers:
              g.ndata["t"] = layer(g.ndata["t"])
              if self.activation is not None:
                  g.ndata["t"] = self.activation(g.ndata["t"])
          g.ndata["t"] = self.dense_final(g.ndata["t"])
          return dgl.readout_nodes(g, "t")
  
file_path: dgl/examples/pytorch/dimenet/modules/output_block.py
imports: import dgl
  import dgl.function
  import torch.nn
  from modules.initializers import GlorotOrthogonal
label_desc: Use image node_id 3 for calling the OutputBlock obj's underlying member method code with example usage: obj.forward(g) and returns: dgl