ChannelIndependentConv¶
- class src.gconv.ChannelIndependentConv(in_features: int, out_features: int, in_edges: int, out_edges: Optional[int] = None)[source]¶
Channel Independent Embedding Convolution. Proposed by “Yu et al. Learning deep graph matching with channel-independent embedding and Hungarian attention. ICLR 2020.”
- Parameters
in_features – the dimension of input node features
out_features – the dimension of output node features
in_edges – the dimension of input edge features
out_edges – (optional) the dimension of output edge features. It needs to be the same as
out_features
- forward(A: torch.Tensor, emb_node: torch.Tensor, emb_edge: torch.Tensor, mode: int = 1) Tuple[torch.Tensor, torch.Tensor] [source]¶
- Parameters
A – \((b\times n\times n)\) {0,1} adjacency matrix. \(b\): batch size, \(n\): number of nodes
emb_node – \((b\times n\times d_n)\) input node embedding. \(d_n\): node feature dimension
emb_edge – \((b\times n\times n\times d_e)\) input edge embedding. \(d_e\): edge feature dimension
mode – 1 or 2, refer to the paper for details
- Returns
\((b\times n\times d^\prime)\) new node embedding, \((b\times n\times n\times d^\prime)\) new edge embedding
- training: bool¶