torch_geometric_signed_directed.nn.signed.SDGNN =============================================== .. py:module:: torch_geometric_signed_directed.nn.signed.SDGNN Classes ------- .. autoapisummary:: torch_geometric_signed_directed.nn.signed.SDGNN.SDRLayer torch_geometric_signed_directed.nn.signed.SDGNN.SDGNN Module Contents --------------- .. py:class:: SDRLayer(in_dim: int = 20, out_dim: int = 20, edge_lists: list = [], **kwargs) Bases: :py:obj:`torch.nn.Module` The signed directed relationship layer from `"SDGNN: Learning Node Representation for Signed Directed Networks" `_ paper. Args: in_dim (int): Dimenson of input features. Defaults to 20. out_dim (int): Dimenson of output features. Defaults to 20. edge_lists (list): Edgelist for current motifs. .. py:attribute:: edge_lists :value: [] .. py:attribute:: aggs :value: [] .. py:attribute:: mlp_layer .. py:method:: reset_parameters() .. py:method:: forward(x: torch.FloatTensor) -> torch.FloatTensor .. py:class:: SDGNN(node_num: int, edge_index_s, in_dim: int = 20, out_dim: int = 20, layer_num: int = 2, init_emb: torch.FloatTensor = None, init_emb_grad: bool = True, lamb_d: float = 5.0, lamb_t: float = 1.0, **kwargs) Bases: :py:obj:`torch.nn.Module` The SDGNN model from `"SDGNN: Learning Node Representation for Signed Directed Networks" `_ paper. :Parameters: * **node_num** (*int, optional*) -- The number of nodes. * **edge_index_s** (*LongTensor*) -- The edgelist with sign. (e.g., :obj:`torch.LongTensor([[0, 1, -1], [0, 2, 1]])` ) * **in_dim** (*int, optional*) -- Size of each input sample features. Defaults to 20. * **out_dim** (*int*) -- Size of each hidden embeddings. Defaults to 20. * **layer_num** (*int, optional*) -- Number of layers. Defaults to 2. * **init_emb** -- (FloatTensor, optional): The initial embeddings. Defaults to :obj:`None`, which will use TSVD as initial embeddings. * **init_emb_grad** (*bool optional*) -- Whether to set the initial embeddings to be trainable. (default: :obj:`False`) * **lamb_d** (*float, optional*) -- Balances the direction loss contributions of the overall objective. (default: :obj:`1.0`) * **lamb_t** (*float, optional*) -- Balances the triangle loss contributions of the overall objective. (default: :obj:`1.0`) .. py:attribute:: node_num .. py:attribute:: in_dim :value: 20 .. py:attribute:: out_dim :value: 20 .. py:attribute:: layer_num :value: 2 .. py:attribute:: device .. py:attribute:: lamb_d :value: 5.0 .. py:attribute:: lamb_t :value: 1.0 .. py:attribute:: pos_edge_index .. py:attribute:: neg_edge_index .. py:attribute:: x .. py:attribute:: adj_lists .. py:attribute:: edge_lists .. py:attribute:: layers :value: [] .. py:attribute:: loss_sign .. py:attribute:: loss_direction .. py:attribute:: loss_tri .. py:method:: reset_parameters() .. py:method:: map_adj_to_edges(adj_list: List) -> torch.LongTensor .. py:method:: get_features(u: int, v: int, r_edgelists: List) -> Tuple[int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int] .. py:method:: build_adj_lists(edge_index_s: torch.LongTensor) -> List .. py:method:: forward() -> torch.FloatTensor .. py:method:: loss()