class_docstr: An implementation of the Long Short Term Memory Relational
  Graph Convolution Layer. For details see this paper: `"Predicting Path
  Failure In Time-Evolving Graphs." <https://arxiv.org/abs/1905.03994>`_
  
  Args:
      in_channels (int): Number of input features.
      out_channels (int): Number of output features.
      num_relations (int): Number of relations.
      num_bases (int): Number of bases.
class_docstr_tok: ["An","implementation","of","the","Long","Short","Term","Memory","Relational","Graph","Convolution","Layer",".","For","details","see","this","paper",":","`","``","Predicting","Path","Failure","In","Time-Evolving","Graphs",".","''","<","https",":","\/\/arxiv.org\/abs\/1905.03994",">","`","_","Args",":","in_channels","(","int",")",":","Number","of","input","features",".","out_channels","(","int",")",":","Number","of","output","features",".","num_relations","(","int",")",":","Number","of","relations",".","num_bases","(","int",")",":","Number","of","bases","."]
docstr: Making a forward pass. If the hidden state and cell state matrices are
  not present when the forward pass is called these are initialized with zeros.
  
  Arg types:
      * **X** *(PyTorch Float Tensor)* - Node features.
      * **edge_index** *(PyTorch Long Tensor)* - Graph edge indices.
      * **edge_type** *(PyTorch Long Tensor)* - Edge type vector.
      * **H** *(PyTorch Float Tensor, optional)* - Hidden state matrix for all nodes.
      * **C** *(PyTorch Float Tensor, optional)* - Cell state matrix for all nodes.
  
  Return types:
      * **H** *(PyTorch Float Tensor)* - Hidden state matrix for all nodes.
      * **C** *(PyTorch Float Tensor)* - Cell state matrix for all nodes.
docstr_tok: ["Making","a","forward","pass",".","If","the","hidden","state","and","cell","state","matrices","are","not","present","when","the","forward","pass","is","called","these","are","initialized","with","zeros",".","Arg","types",":","*","*","*","X","*","*","*","(","PyTorch","Float","Tensor",")","*","-","Node","features",".","*","*","*","edge_index","*","*","*","(","PyTorch","Long","Tensor",")","*","-","Graph","edge","indices",".","*","*","*","edge_type","*","*","*","(","PyTorch","Long","Tensor",")","*","-","Edge","type","vector",".","*","*","*","H","*","*","*","(","PyTorch","Float","Tensor",",","optional",")","*","-","Hidden","state","matrix","for","all","nodes",".","*","*","*","C","*","*","*","(","PyTorch","Float","Tensor",",","optional",")","*","-","Cell","state","matrix","for","all","nodes",".","Return","types",":","*","*","*","H","*","*","*","(","PyTorch","Float","Tensor",")","*","-","Hidden","state","matrix","for","all","nodes",".","*","*","*","C","*","*","*","(","PyTorch","Float","Tensor",")","*","-","Cell","state","matrix","for","all","nodes","."]
code: def forward(
      self,
      X: torch.FloatTensor,
      edge_index: torch.LongTensor,
      edge_type: torch.LongTensor,
      H: torch.FloatTensor = None,
      C: torch.FloatTensor = None,
  ) -> torch.FloatTensor:
      """
      Making a forward pass. If the hidden state and cell state matrices are
      not present when the forward pass is called these are initialized with zeros.
  
      Arg types:
          * **X** *(PyTorch Float Tensor)* - Node features.
          * **edge_index** *(PyTorch Long Tensor)* - Graph edge indices.
          * **edge_type** *(PyTorch Long Tensor)* - Edge type vector.
          * **H** *(PyTorch Float Tensor, optional)* - Hidden state matrix for all nodes.
          * **C** *(PyTorch Float Tensor, optional)* - Cell state matrix for all nodes.
  
      Return types:
          * **H** *(PyTorch Float Tensor)* - Hidden state matrix for all nodes.
          * **C** *(PyTorch Float Tensor)* - Cell state matrix for all nodes.
      """
      H = self._set_hidden_state(X, H)
      C = self._set_cell_state(X, C)
      I = self._calculate_input_gate(X, edge_index, edge_type, H, C)
      F = self._calculate_forget_gate(X, edge_index, edge_type, H, C)
      C = self._calculate_cell_state(
          X, edge_index, edge_type, H, C, I, F
      )
      O = self._calculate_output_gate(X, edge_index, edge_type, H, C)
      H = self._calculate_hidden_state(O, C)
      return H, C
  
file_path: pytorch_geometric_temporal/torch_geometric_temporal/nn/recurrent/lrgcn.py
imports: import torch
  from torch.nn import Parameter
  from torch_geometric.nn import RGCNConv
  from torch_geometric.nn.inits import glorot, zeros
label_desc: Use image node_id 14 for calling the LRGCN obj's underlying member method code with example usage: obj.forward(X, edge_index, edge_type, H, C) and returns: H,  C