Skip to content

Commit 60700cb

Browse files
add Google Summer of Code [GSOC] doc page (#117)
* add GSOC proposal * relax atol, rtol GATv2
1 parent 4457f0d commit 60700cb

File tree

3 files changed

+39
-2
lines changed

3 files changed

+39
-2
lines changed

docs/make.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ makedocs(;
2424
"Utils" => "api/utils.md",
2525
],
2626
"Developer Notes" => "dev.md",
27+
"Summer Of Code" => "gsoc.md",
2728
],
2829
)
2930

docs/src/gsoc.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Graph Neural Networks - Summer of Code
2+
3+
Graph neural networks (GNN) are deep learning models well adapated to data rapresented by graphs along with feature vectors associated to nodes and edges.
4+
GNNs are a growing are of research and find many applications in complex networks analysis, relational reasoning, combinatorial optimization, molecule generation, and many other fields.
5+
[GraphNeuralNetworks.jl](https://github.com/CarloLucibello/GraphNeuralNetworks.jl) is a pure Julia package for GNNs already equipped with plenty of features such as many common graph convolutional layers, CUDA support and graph batching for fast parallel operations. There are a number of ways by which the package could be improved:
6+
7+
- **Adding graph convolutional layers (duration: 175h, expected difficulty: easy to medium):**
8+
While we implement a good variety of graph convolutional layers, there is still a vast zoology to be implemented yet.
9+
10+
- **Adding models and examples (duration: 175h, expected difficulty: medium):**
11+
As part of the documentation and for bootstrapping new projects,
12+
we want to add fully worked out examples and applications of graph neural networks.
13+
14+
- **Adding graph datasets (duration: 175h, expected difficulty: easy):**
15+
. Provide julia friendly wrappers for common graph datasets in [`MLDatasets.jl`](https://github.com/JuliaML/MLDatasets.jl).
16+
17+
- **Supporting heterogeneous graphs (duration: 175h, expected difficulty: hard):**
18+
In some complex networks, the relations expressed by edges can be of different types.
19+
We need to implement an heteroeneous graph type and implement convolutional layers supporting them.
20+
21+
- **Training on very large graphs (duration: 175h, expected difficulty: medium to hard):**
22+
Graph containing several milions of nodes are too large for gpu memory. Mini-batch training si performed on subgraphs, as in the GraphSAGE algorithm.
23+
24+
- **Supporting temporal graph neural networks (duration: 175h, expected difficulty: hard):**
25+
We aim at implementing temporal graph convolutions for time-varying graph and/or node features.
26+
27+
- **Improving perfomance using sparse linear algebra (duration: 175h, expected difficulty: medium to hard):**
28+
Many graph convolutional layers can be expressed as non-materializing algebraic operations involving the adjacency matrix instead of the slower and more memory consuming gather/scatter mechanism. We aim at extending as far as possible and in a gpu-friendly way these *fused* implementation.
29+
30+
**Recommended skills:** Familiarity with graph neural networks and Flux.jl.
31+
32+
**Expected results:** New features added to the package along with tests and relevant documentation.
33+
34+
**Mentors:** [Carlo Lucibello](https://github.com/CarloLucibello) (author of [GraphNeuralNetworks.jl](https://github.com/CarloLucibello/GraphNeuralNetworks.jl).For linear algebra, co-mentoring by [Will Kimmerer](https://github.com/Wimmerer) (lead developer of [SuiteSparseGraphBLAS.jl](https://github.com/JuliaSparse/SuiteSparseGraphBLAS.jl)).
35+
36+
**Contact:** Feel free to contact us on the [Julia Slack Workspace](https://julialang.slack.com/) or by opening an issue on [GraphNeuralNetworks.jl](https://github.com/CarloLucibello/GraphNeuralNetworks.jl).

test/layers/conv.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@
9898
for heads in (1, 2), concat in (true, false)
9999
l = GATConv(in_channel => out_channel; heads, concat)
100100
for g in test_graphs
101-
test_layer(l, g, rtol=1e-4,
101+
test_layer(l, g, rtol=1e-3, atol=1e-3,
102102
outsize=(concat ? heads*out_channel : out_channel, g.num_nodes))
103103
end
104104
end
@@ -114,7 +114,7 @@
114114
for heads in (1, 2), concat in (true, false)
115115
l = GATv2Conv(in_channel => out_channel; heads, concat)
116116
for g in test_graphs
117-
test_layer(l, g, rtol=1e-4,
117+
test_layer(l, g, rtol=1e-3, atol=1e-3,
118118
outsize=(concat ? heads*out_channel : out_channel, g.num_nodes))
119119
end
120120
end

0 commit comments

Comments
 (0)