Code Monkey home page Code Monkey logo

gain's Introduction

GAIN

Overview

This repository contains the codes of a novel approach, GAIN, to aggregating knowledge for learning representations by graph convolutional neural networks. The GAIN architecture is developed to address multi-class road type classification problem inspired by GraphSAGE. Road network graph datasets are generated from OpenStreeMap (OSMnx) and preprocessed according to the corresponding settings. Representation learning improves by application of a search mechanism in the local and the global neighborhood of a graph node. Anyone interested in using GAIN architecture, please cite the following paper:

@article {gharaee2021pr} {
  author = {Gharaee, Zahra and Kowshik, Shreyas and Stromann, Oliver and Felsberg, Michael},
    title = {Graph representation learning for road type classification},
    booktitle = {Pattern Recognition},
    year = {2021}
    page = {}
    volume = {120}
    DOI = {https://doi.org/10.1016/j.patcog.2021.108174}
  }
}

Requirement

Use the packages mentioned in the requirements.txt file to generate road network graphs and to run experiments.

Road network graph generation

Run roadnetwork_graphs.py scripts in codes folder in order to generate transductive road network graphs of Linköping city and inductive road network graphs of Sweden country extracted from OpenStreetMap (OSMnx). Running roadnetwork_graphs.py also generates id-map, class-map, raw features/attributes and the pairs of topological neighbors. A set of transductive and inductive road network graphs of Linköping city and Sweden country are available in graph_data_GainRepo folder.

Image below shows road network graph of the Linköping city representing our transductive data set. Road-type class labels of the original graph are described as following and its line graph representation is overlaid in black:

  • Class1: red
  • Class2: orange
  • Class3: yellow
  • Class4: skyblue
  • Class5: lime
Image of Yaktocat
Road network graph of Linköping city area.

Road types classification

run_supervised.py and run_unsupervised.py python scripts contans the main codes and the configurations of hyperparameters to run experiments for supervised and unsupervised settings, respectively.

Results

osm_eval.py python script evaluates the representation vectors generated by GAIN for road type classification. Running this script shows the performance results of applying random-baseline, raw-features, and representation vectors of a pre-trained GAIN model, available in logs_GainRepo folder, to classify road networks of transductive and inductive test datasets in both supervised and unsupervised settings.

Co-authors: Shreyas Kowshik ([email protected]) & Oliver Stromann([email protected])

gain's People

Contributors

zahrag avatar

Stargazers

 avatar Gurban avatar codeghost avatar Zhaonan Wang avatar Ana-Maria Comorasu avatar  avatar

Watchers

 avatar

gain's Issues

[Feature] which RFN implementation in this paper are we referring?

Hi!

I wonder if we are referring the RFN implementation, in this paper, on either GCN2020FinalProject or relational-fusion-networks?

The motivation is I am trying to compare my model with this paper as well as RFN but on a different problem. I wish to have a tf implementation of RFN (in case you might have done that) on super large graph, as MXNET, if I am correct (but pls correct, I am really new here), do not have a tf.generator that handles larger-than-memory dataset.

Best,
Yifei Jin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.