GeometricFlux is a geometric deep learning library for Flux. This library aims to be compatible with packages from JuliaGraphs ecosystem and have support of CUDA GPU acceleration with CUDA. Message passing scheme is implemented as a flexbile framework and fused with Graph Network block scheme. GeometricFlux is compatible with other packages that are composable with Flux.
Suggestions, issues and pull requsts are welcome.
GeometricFlux handles graph data (the topology plus node/vertex/graph features) thanks to FeaturedGraph
type.
A FeaturedGraph
can be constructed from various graph structures, including adjacency matrices, adjacency lists, Graphs' types...
fg = FeaturedGraph(adj_list)Graph convolutional layers
Construct a GCN layer:
GCNConv(input_dim => output_dim, relu)
model = Chain( WithGraph(fg, GCNConv(fg, 1024 => 512, relu)), Dropout(0.5), WithGraph(fg, GCNConv(fg, 512 => 128)), Dense(128, 10) ) ## Loss loss(x, y) = logitcrossentropy(model(x), y) accuracy(x, y) = mean(onecold(model(x)) .== onecold(y)) ## Training ps = Flux.params(model) train_data = [(train_X, train_y)] opt = ADAM(0.01) evalcb() = @show(accuracy(train_X, train_y)) Flux.train!(loss, ps, train_data, opt, cb=throttle(evalcb, 10))
To achieve geometric deep learning raised by Bronstein et al, 5G fields of deep learning models will be supported in GeometricFlux.jl. For details, you could check the geometric deep learning official website.
5(+1)G including the following fields:
It's welcome to have direct discussions in #graphnet channel or in #flux-bridged channel on slack. For usage issues, it's welcome to post your minimal working examples (MWE) on Julia discourse and then tag maintainer @yuehhua
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4