class_docstr: Base class for all neural network modules.
class_docstr_tok: ["Base","class","for","all","neural","network","modules","."]
docstr: Forward computation
  
  Parameters
  ----------
  enc_graph : DGLGraph
      The graph for encoding
  dec_graph : DGLGraph
      The graph for decoding
  ufeat : torch.Tensor
      The input user feature
  ifeat : torch.Tensor
      The input item feature
docstr_tok: ["Forward","computation","Parameters","--","--","--","--","--","enc_graph",":","DGLGraph","The","graph","for","encoding","dec_graph",":","DGLGraph","The","graph","for","decoding","ufeat",":","torch.Tensor","The","input","user","feature","ifeat",":","torch.Tensor","The","input","item","feature"]
code: def forward(self, enc_graph, dec_graph, ufeat=None, ifeat=None):
      """Forward computation
  
      Parameters
      ----------
      enc_graph : DGLGraph
          The graph for encoding
      dec_graph : DGLGraph
          The graph for decoding
      ufeat : torch.Tensor
          The input user feature
      ifeat : torch.Tensor
          The input item feature
      """
      user_out, item_out = self.encoder(enc_graph, ufeat, ifeat)
      pred_ratings = self.decoder(dec_graph, user_out, item_out)
      return pred_ratings
  
imports: import dgl.function
  import dgl.nn.pytorch
  from dgl import DGLError
  import torch
  import torch.nn
  from torch.nn import init
  from .utils import get_activation
label_desc: Use image node_id 2 for calling the NeuralNetwork obj's underlying member method code with example usage: obj.forward(enc_graph, dec_graph, ufeat, ifeat) and returns: pred_ratings