Skip to content

Commit

Permalink
Improve support in conv layers for edge features (#130)
Browse files Browse the repository at this point in the history
* add features table for conv layer; use GCConv also without edge features

* edge features support in GATv2Conv
  • Loading branch information
CarloLucibello authored Feb 13, 2022
1 parent af8ebc1 commit 00909d4
Show file tree
Hide file tree
Showing 4 changed files with 203 additions and 90 deletions.
31 changes: 26 additions & 5 deletions docs/src/api/conv.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,33 @@ CurrentModule = GraphNeuralNetworks

# Convolutional Layers

## Index
Many different types of graphs convolutional layers have been proposed in the literature.
Choosing the right layer for your application can be a matter of trial and error.
Some of the most commonly used layers are the [`GCNConv`](@ref) and the [`GATv2Conv`](@ref) layers. Multiple graph convolutional layers are stacked to create a graph neural network model
(see [`GNNChain`](@ref)).

The table below lists all graph convolutional layers implemented in the *GraphNeuralNetworks.jl*. It also highlights the presence of some additional capabilities with respect to basic message passing:
- *Sparse Ops*: implements message passing as multiplication by sparse adjacency matrix instead of the gather/scatter mechanism. This can lead to better cpu performances but it is not supported on gpu yet.
- *Edge Weights*: supports scalar weights (or equivalently scalar features) on edges.
- *Edge Features*: supports feature vectors on edges.

| Layer |Sparse Ops|Edge Weight|Edge Features|
| :-------- | :---: |:---: |:---: |
| [`AGNNConv`](@ref) | | ||
| [`CGConv`](@ref) | | | |
| [`ChebConv`](@ref) | | | |
| [`EdgeConv`](@ref) | | | |
| [`GATConv`](@ref) | | ||
| [`GATv2Conv`](@ref) | | ||
| [`GatedGraphConv`](@ref) || | |
| [`GCNConv`](@ref) ||| |
| [`GINConv`](@ref) || | |
| [`GraphConv`](@ref) || | |
| [`MEGNetConv`](@ref) | | ||
| [`NNConv`](@ref) | | ||
| [`ResGatedGraphConv`](@ref) | | | |
| [`SAGEConv`](@ref) || | |

```@index
Order = [:type, :function]
Pages = ["conv.md"]
```

## Docs

Expand Down
3 changes: 3 additions & 0 deletions src/deprecations.jl
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ end
## Deprecated in v0.3

@deprecate copyxj(xi, xj, e) copy_xj(xi, xj, e)

@deprecate CGConv(nin::Int, ein::Int, out::Int, args...; kws...) CGConv((nin, ein) => out, args...; kws...)

Loading

0 comments on commit 00909d4

Please sign in to comment.