alberthaoh / GeometricFlux.jl

Geometric Deep Learning for Flux

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GeometricFlux.jl

Build Status codecov

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 CuArrays. 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.

Note: Flux, Zygote, ZygoteRules, IRTools, CuArrays should use master branch.

Installation

]add GeometricFlux

Features

Construct layers from adjacency matrix or graph (maybe extend to other structures). Input features (including vertex, edge or graph features) of neural network may not need a structure or type. Labels or features for output of classification or regression are part of training data, they may not need a specific structure or type, too.

  • Integration of JuliaGraphs
    • Construct layer from SimpleGraph
    • Construct layer from SimpleWeightedGraph
    • Construct layer from Matrix
    • Support vertex/edge/graph features from MetaGraphs
  • Layers
    • Convolution layers
      • MessagePassing
      • GCNConv
      • GraphConv
      • ChebConv
      • GatedGraphConv
      • GATConv
      • EdgeConv
      • Meta
    • Pooling layers
      • GlobalPool
      • TopKPool
      • LocalPool
      • sum/sub/prod/div/max/min/mean pool
    • Embedding layers
      • InnerProductDecoder
  • Models
    • VGAE
    • GAE
  • Internals
    • use Zygote
    • compatible with layers in Flux
    • multi-threading scatter (i.e. add/sub/prod/div/max/min/mean)
  • Datasets
  • Storage
    • Benchmark JLD2, BSON

About

Geometric Deep Learning for Flux

License:MIT License


Languages

Language:Julia 99.9%Language:Shell 0.1%