class_docstr: An implementation of the Deep Neural Network for Temporal Set Prediction.
  For details see: `"Predicting Temporal Sets with Deep Neural Networks" <https://dl.acm.org/doi/abs/10.1145/3394486.3403152>`_
  
  Args:
      items_total (int): Total number of items in the sets. Cardinality of the union.
      item_embedding_dim (int): Item embedding dimensions.
      n_heads (int): Number of attention heads.
class_docstr_tok: ["An","implementation","of","the","Deep","Neural","Network","for","Temporal","Set","Prediction",".","For","details","see",":","`","``","Predicting","Temporal","Sets","with","Deep","Neural","Networks","''","<","https",":","\/\/dl.acm.org\/doi\/abs\/10.1145\/3394486.3403152",">","`","_","Args",":","items_total","(","int",")",":","Total","number","of","items","in","the","sets",".","Cardinality","of","the","union",".","item_embedding_dim","(","int",")",":","Item","embedding","dimensions",".","n_heads","(","int",")",":","Number","of","attention","heads","."]
docstr: Making a forward pass. If edge weights are not present the forward pass
  defaults to an unweighted graph.
  
  Arg types:
      * **X** (PyTorch Float Tensor) - Node features.
      * **edge_index** (PyTorch Long Tensor) - Graph edge indices.
      * **edge_weight** (PyTorch Long Tensor, optional) - Edge weight vector.
  
  Return types:
      * **H** (PyTorch Float Tensor) - Hidden state matrix for all nodes.
docstr_tok: ["Making","a","forward","pass",".","If","edge","weights","are","not","present","the","forward","pass","defaults","to","an","unweighted","graph",".","Arg","types",":","*","*","*","X","*","*","(","PyTorch","Float","Tensor",")","-","Node","features",".","*","*","*","edge_index","*","*","(","PyTorch","Long","Tensor",")","-","Graph","edge","indices",".","*","*","*","edge_weight","*","*","(","PyTorch","Long","Tensor",",","optional",")","-","Edge","weight","vector",".","Return","types",":","*","*","*","H","*","*","(","PyTorch","Float","Tensor",")","-","Hidden","state","matrix","for","all","nodes","."]
code: def forward(
      self,
      X: torch.FloatTensor,
      edge_index: torch.LongTensor,
      edge_weight: torch.FloatTensor = None,
  ):
      r"""Making a forward pass. If edge weights are not present the forward pass
      defaults to an unweighted graph.
  
      Arg types:
          * **X** (PyTorch Float Tensor) - Node features.
          * **edge_index** (PyTorch Long Tensor) - Graph edge indices.
          * **edge_weight** (PyTorch Long Tensor, optional) - Edge weight vector.
  
      Return types:
          * **H** (PyTorch Float Tensor) - Hidden state matrix for all nodes.
      """
      H = self.stacked_gcn(X, edge_index, edge_weight)
      H = H.view(-1, self.items_total, self.item_embedding_dim)
      H = self.masked_self_attention(H)
      H = self.aggregate_nodes_temporal_feature(H)
      H = self.global_gated_updater(H)
      return H
  
imports: import torch
  import numpy
  import torch.nn
  from typing import List
  import torch.nn.functional
  from torch_geometric.nn import GCNConv
label_desc: Use image node_id 2 for calling the DNNTSP obj's underlying member method code with example usage: obj.forward(X, edge_index, edge_weight) and returns: H