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","`",")"]
code: def __init__(
      self,
      in_channels: int,
      hidden_channels: int,
      num_layers: int,
      lamb: float = 5,
      bias: bool = True,
  ):
      super().__init__()
  
      self.in_channels = in_channels
      self.hidden_channels = hidden_channels
      self.num_layers = num_layers
      self.lamb = lamb
  
      self.conv1 = SignedConv(
          in_channels, hidden_channels // 2, first_aggr=True
      )
      self.convs = torch.nn.ModuleList()
      for i in range(num_layers - 1):
          self.convs.append(
              SignedConv(
                  hidden_channels // 2,
                  hidden_channels // 2,
                  first_aggr=False,
              )
          )
  
      self.lin = torch.nn.Linear(2 * hidden_channels, 3)
  
      self.reset_parameters()
  
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 1 to create a new SignedGCN object from inherited base classes: torch.nn with example: obj = SignedGCN(in_channels, hidden_channels, num_layers, lamb, bias)