class_docstr: Graph Sequence to sequence prediction framework
  Support multiple backbone GNN. Mainly used for traffic prediction.
  
  Parameter
  ==========
  in_feats : int
      number of input features
  
  out_feats : int
      number of prediction output features
  
  seq_len : int
      input and predicted sequence length
  
  num_layers : int
      vertical number of layers in encoder and decoder unit
  
  net : torch.nn.Module
      Message passing GNN as backbone
  
  decay_steps : int
      number of steps for the teacher forcing probability to decay
class_docstr_tok: ["Graph","Sequence","to","sequence","prediction","framework","Support","multiple","backbone","GNN",".","Mainly","used","for","traffic","prediction",".","Parameter","==========","in_feats",":","int","number","of","input","features","out_feats",":","int","number","of","prediction","output","features","seq_len",":","int","input","and","predicted","sequence","length","num_layers",":","int","vertical","number","of","layers","in","encoder","and","decoder","unit","net",":","torch.nn.Module","Message","passing","GNN","as","backbone","decay_steps",":","int","number","of","steps","for","the","teacher","forcing","probability","to","decay"]
code: def __init__(
      self, in_feats, out_feats, seq_len, num_layers, net, decay_steps
  ):
      super(GraphRNN, self).__init__()
      self.in_feats = in_feats
      self.out_feats = out_feats
      self.seq_len = seq_len
      self.num_layers = num_layers
      self.net = net
      self.decay_steps = decay_steps
  
      self.encoder = StackedEncoder(
          self.in_feats, self.out_feats, self.num_layers, self.net
      )
  
      self.decoder = StackedDecoder(
          self.in_feats,
          self.out_feats,
          self.in_feats,
          self.num_layers,
          self.net,
      )
  
imports: import dgl
  import dgl.function
  import dgl.nn
  import numpy
  import scipy.sparse
  import torch
  import torch.nn
  from dgl.base import DGLError
  from dgl.nn.functional import edge_softmax
label_desc: Use image node_id 1 to create a new GraphRNN object from inherited base classes: nn with example: obj = GraphRNN(in_feats, out_feats, seq_len, num_layers, net, decay_steps)