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: Computes the triplet loss between positive node pairs and sampled
  non-node pairs.
  
  Args:
      z (torch.Tensor): The node embeddings.
      pos_edge_index (torch.Tensor): The positive edge indices.
docstr_tok: ["Computes","the","triplet","loss","between","positive","node","pairs","and","sampled","non-node","pairs",".","Args",":","z","(","torch.Tensor",")",":","The","node","embeddings",".","pos_edge_index","(","torch.Tensor",")",":","The","positive","edge","indices","."]
code: def pos_embedding_loss(
      self,
      z: Tensor,
      pos_edge_index: Tensor,
  ) -> Tensor:
      """Computes the triplet loss between positive node pairs and sampled
      non-node pairs.
  
      Args:
          z (torch.Tensor): The node embeddings.
          pos_edge_index (torch.Tensor): The positive edge indices.
      """
      i, j, k = structured_negative_sampling(pos_edge_index, z.size(0))
  
      out = (z[i] - z[j]).pow(2).sum(dim=1) - (z[i] - z[k]).pow(2).sum(
          dim=1
      )
      return torch.clamp(out, min=0).mean()
  
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 8 for calling the SignedGCN obj's underlying member method code with example usage: obj.pos_embedding_loss(z, pos_edge_index) and returns: torch