code: def __init__(self, hidden_size, depth):
      nn.Module.__init__(self)
  
      self.depth = depth
  
      self.W_i = nn.Linear(
          ATOM_FDIM + BOND_FDIM, hidden_size, bias=False
      )
  
      self.loopy_bp_updater = LoopyBPUpdate(hidden_size)
      self.gather_updater = GatherUpdate(hidden_size)
      self.hidden_size = hidden_size
  
      self.n_samples_total = 0
      self.n_nodes_total = 0
      self.n_edges_total = 0
      self.n_passes = 0
  
imports: import os
  import dgl
  import dgl.function
  import rdkit.Chem
  import torch
  import torch.nn
  from dgl import line_graph, mean_nodes
  from .nnutils import cuda
label_desc: Use image node_id 1 to create a new DGLJTMPN object from inherited base classes: nn with example: obj = DGLJTMPN(hidden_size, depth)