Need help with EvolveGCN?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

263 Stars 94 Forks Apache License 2.0 6 Commits 11 Opened issues


Code for EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs

Services available


Need anything else?

Contributors list

# 109,126
1 commit


This repository contains the code for EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs, published in AAAI 2020.


7 datasets were used in the paper:

  • stochastic block model: See the 'data' folder. Untar the file for use.
  • bitcoin OTC: Downloadable from
  • bitcoin Alpha: Downloadable from
  • uc_irvine: Downloadable from
  • autonomous systems: Downloadable from
  • reddit hyperlink network: Downloadable from
  • elliptic: A preprocessed version of is provided in the following link: ~~ Untar the file in the 'data' folder for use.

Update on elliptic: The box link is no longer valid. Please see the instruction to manually prepare the preprocessed version.

For downloaded data sets please place them in the 'data' folder.


  • PyTorch 1.0 or higher
  • Python 3.6

Set up with Docker

This docker file describes a container that allows you to run the experiments on any Unix-based machine. GPU availability is recommended to train the models. Otherwise, set the use_cuda flag in parameters.yaml to false.



1. Build the image

From this folder you can create the image

sudo docker build -t gcn_env:latest docker-set-up/

2. Start the container

Start the container

sudo docker run -ti  --gpus all -v $(pwd):/evolveGCN  gcn_env:latest

This will start a bash session in the container.


Set --config_file with a yaml configuration file to run the experiments. For example:

python --config_file ./experiments/parameters_example.yaml

Most of the parameters in the yaml configuration file are self-explanatory. For hyperparameters tuning, it is possible to set a certain parameter to 'None' and then set a min and max value. Then, each run will pick a random value within the boundaries (for example: 'learningrate', 'learningratemin' and 'learningrate_max'). The 'experiments' folder contains one file for each result reported in the EvolveGCN paper.

Setting 'uselogfile' to True in the configuration yaml will output a file, in the 'log' directory, containing information about the experiment and validation metrics for the various epochs. The file could be manually analyzed, alternatively '' can be used to automatically parse a log file and to retrieve the evaluation metrics at the best validation epoch. For example:

python log/filename.log


[1] Aldo Pareja, Giacomo Domeniconi, Jie Chen, Tengfei Ma, Toyotaro Suzumura, Hiroki Kanezashi, Tim Kaler, Tao B. Schardl, and Charles E. Leiserson. EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs. AAAI 2020.

BibTeX entry

Please cite the paper if you use this code in your work:

  AUTHOR = {Aldo Pareja and Giacomo Domeniconi and Jie Chen and Tengfei Ma and Toyotaro Suzumura and Hiroki Kanezashi and Tim Kaler and Tao B. Schardl and Charles E. Leiserson},
  TITLE = {{EvolveGCN}: Evolving Graph Convolutional Networks for Dynamic Graphs},
  BOOKTITLE = {Proceedings of the Thirty-Fourth AAAI Conference on Artificial Intelligence},
  YEAR = {2020},

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.