class_docstr: The inner product decoder from the `"Variational Graph Auto-Encoders"
  <https://arxiv.org/abs/1611.07308>`_ paper.
  
  .. math::
      \sigma(\mathbf{Z}\mathbf{Z}^{\top})
  
  where :math:`\mathbf{Z} \in \mathbb{R}^{N \times d}` denotes the latent
  space produced by the encoder.
class_docstr_tok: ["The","inner","product","decoder","from","the","`","``","Variational","Graph","Auto-Encoders","''","<","https",":","\/\/arxiv.org\/abs\/1611.07308",">","`","_","paper",".","..","math",":",":","\\sigma","(","\\mathbf","{","Z","}","\\mathbf","{","Z","}","^","{","\\top","}",")","where",":","math",":","`","\\mathbf","{","Z","}","\\in","\\mathbb","{","R","}","^","{","N","\\times","d","}","`","denotes","the","latent","space","produced","by","the","encoder","."]
docstr: Decodes the latent variables :obj:`z` into edge probabilities for
  the given node-pairs :obj:`edge_index`.
  
  Args:
      z (torch.Tensor): The latent space :math:`\mathbf{Z}`.
      edge_index (torch.Tensor): The edge indices.
      sigmoid (bool, optional): If set to :obj:`False`, does not apply
          the logistic sigmoid function to the output.
          (default: :obj:`True`)
docstr_tok: ["Decodes","the","latent","variables",":","obj",":","`","z","`","into","edge","probabilities","for","the","given","node-pairs",":","obj",":","`","edge_index","`",".","Args",":","z","(","torch.Tensor",")",":","The","latent","space",":","math",":","`","\\mathbf","{","Z","}","`",".","edge_index","(","torch.Tensor",")",":","The","edge","indices",".","sigmoid","(","bool",",","optional",")",":","If","set","to",":","obj",":","`","False","`",",","does","not","apply","the","logistic","sigmoid","function","to","the","output",".","(","default",":",":","obj",":","`","True","`",")"]
code: def forward(
      self,
      z: Tensor,
      edge_index: Tensor,
      sigmoid: bool = True,
  ) -> Tensor:
      r"""Decodes the latent variables :obj:`z` into edge probabilities for
      the given node-pairs :obj:`edge_index`.
  
      Args:
          z (torch.Tensor): The latent space :math:`\mathbf{Z}`.
          edge_index (torch.Tensor): The edge indices.
          sigmoid (bool, optional): If set to :obj:`False`, does not apply
              the logistic sigmoid function to the output.
              (default: :obj:`True`)
      """
      value = (z[edge_index[0]] * z[edge_index[1]]).sum(dim=1)
      return torch.sigmoid(value) if sigmoid else value
  
imports: from typing import Optional, Tuple
  import torch
  from torch import Tensor
  from torch.nn import Module
  from torch_geometric.nn.inits import reset
  from torch_geometric.utils import negative_sampling
label_desc: Use image node_id 1 for calling the InnerProductDecoder obj's underlying member method code with example usage: obj.forward(z, edge_index, sigmoid) and returns: unknown