class_docstr: The signed graph convolutional network model from the `"Signed Graph
  Convolutional Network" <https://arxiv.org/abs/1808.06354>`_ paper.
  Internally, this module uses the
  :class:`torch_geometric.nn.conv.SignedConv` operator.
  
  Args:
      in_channels (int): Size of each input sample.
      hidden_channels (int): Size of each hidden sample.
      num_layers (int): Number of layers.
      lamb (float, optional): Balances the contributions of the overall
          objective. (default: :obj:`5`)
      bias (bool, optional): If set to :obj:`False`, all layers will not
          learn an additive bias. (default: :obj:`True`)
class_docstr_tok: ["The","signed","graph","convolutional","network","model","from","the","`","``","Signed","Graph","Convolutional","Network","''","<","https",":","\/\/arxiv.org\/abs\/1808.06354",">","`","_","paper",".","Internally",",","this","module","uses","the",":","class",":","`","torch_geometric.nn.conv.SignedConv","`","operator",".","Args",":","in_channels","(","int",")",":","Size","of","each","input","sample",".","hidden_channels","(","int",")",":","Size","of","each","hidden","sample",".","num_layers","(","int",")",":","Number","of","layers",".","lamb","(","float",",","optional",")",":","Balances","the","contributions","of","the","overall","objective",".","(","default",":",":","obj",":","`","5","`",")","bias","(","bool",",","optional",")",":","If","set","to",":","obj",":","`","False","`",",","all","layers","will","not","learn","an","additive","bias",".","(","default",":",":","obj",":","`","True","`",")"]
docstr: Given node embeddings :obj:`z`, classifies the link relation
  between node pairs :obj:`edge_index` to be either positive,
  negative or non-existent.
  
  Args:
      z (torch.Tensor): The input node features.
      edge_index (torch.Tensor): The edge indices.
docstr_tok: ["Given","node","embeddings",":","obj",":","`","z","`",",","classifies","the","link","relation","between","node","pairs",":","obj",":","`","edge_index","`","to","be","either","positive",",","negative","or","non-existent",".","Args",":","z","(","torch.Tensor",")",":","The","input","node","features",".","edge_index","(","torch.Tensor",")",":","The","edge","indices","."]
code: def discriminate(self, z: Tensor, edge_index: Tensor) -> Tensor:
      """Given node embeddings :obj:`z`, classifies the link relation
      between node pairs :obj:`edge_index` to be either positive,
      negative or non-existent.
  
      Args:
          z (torch.Tensor): The input node features.
          edge_index (torch.Tensor): The edge indices.
      """
      value = torch.cat([z[edge_index[0]], z[edge_index[1]]], dim=1)
      value = self.lin(value)
      return torch.log_softmax(value, dim=1)
  
imports: from typing import Optional, Tuple
  import scipy.sparse
  import torch
  import torch.nn.functional
  from torch import Tensor
  from torch_geometric.nn import SignedConv
  from torch_geometric.utils import coalesce, negative_sampling, structured_negative_sampling
label_desc: Use image node_id 6 for calling the SignedGCN obj's underlying member method code with example usage: obj.discriminate(z, edge_index) and returns: torch