class_docstr: Simple Interaction Network
  One Layer interaction network for stellar multi-body problem simulation,
  it has the ability to simulate number of body motion no more than 12
  Parameters
  ==========
  node_feats : int
      Number of node features
  
  stat : dict
      Statistcics for Denormalization
class_docstr_tok: ["Simple","Interaction","Network","One","Layer","interaction","network","for","stellar","multi-body","problem","simulation",",","it","has","the","ability","to","simulate","number","of","body","motion","no","more","than","12","Parameters","==========","node_feats",":","int","Number","of","node","features","stat",":","dict","Statistcics","for","Denormalization"]
code: def __init__(self, node_feats, stat):
      super(InteractionNet, self).__init__()
      self.node_feats = node_feats
      self.stat = stat
      edge_fn = partial(MLP, num_layers=5, hidden=150)
      node_fn = partial(MLP, num_layers=2, hidden=100)
  
      self.in_layer = InteractionLayer(
          node_feats - 3,  # Use velocity only
          node_feats,
          out_node_feats=2,
          out_edge_feats=50,
          edge_fn=edge_fn,
          node_fn=node_fn,
          mode="n_n",
      )
  
imports: import copy
  from functools import partial
  import dgl
  import dgl.function
  import dgl.nn
  import torch
  import torch.nn
  from torch.nn import functional
label_desc: Use image node_id 1 to create a new InteractionNet object from inherited base classes: nn with example: obj = InteractionNet(node_feats, stat)