Machine learning on graphs

A free, project-based course

This summer Octavian is hosting an online course, covering the main approaches to machine learning on graphs. This summer we're publishing a set of exercises and hosting weekly Q&A sessions to help you learn about this exciting new area.

Join our mailing list to get course updates

We'll email you when new exercises come out and also occasionally mail you news about the course.

Thanks! You'll receive a confirmation email from us.
Oops! Something went wrong while submitting the form.

Course structure

The course has a couple of components:

  • Projects - Google Colab documents that guide you through writing python and TensorFlow code to solve problems.
  • Project solutions - A week after a project is published, the solution will be published. It'll be linked to from the original project so as not to spoil the project for new visitors.
  • Online chat - We have a chatroom for everyone to discuss their work on the course and share interesting resources

To receive the latest projects and updates, join the mailing list above.

Materials and future schedule

You can find all the materials published so far here. As we publish new materials we'll announce them on the mailing list, chatroom and add them here.



An article explaining the required background to get the most out of this course. There are lots of links to helpful learning resources.


Introduction to graphs and TensorFlow

Introduces you to TensorFlow and working with graph data. In this exercise you will perform some very simple node classification.


Node classification using graph convolutions

Create a graph convolutional network in Keras to classify nodes in a paper citation graph.


Link prediction

Build a network that can predict whether two nodes in a graph are connected.


Graph generation

Not yet published

I'm aiming to keep a regular cadence of project publications, although with my work commitments they may be a bit sporadic. This is an open-source effort, if you want to help write exercises you're really welcome to collaborate (chat with David and Andy in Discord).

To get an overview of machine learning on graphs, check out our talk and article.


A list of resources to learn the pre-requisites is now online.

To get the most out of this course, it's important everyone has the same foundation. This is not an introduction to machine learning, we will the assume each student is familiar with the following:

  • What is a neural network, back-propagation, training of parameters
  • The machine learning lifecycle: data preparation, choosing metrics, iterative model development, monitoring training through loss and accuracy metrics
  • Building a model from scratch in TensorFlow and successfully training a feed-forward network and a convolutional network
  • Using TensorBoard to visualize the training of a model
  • A basic understanding of RNNs and Attention is helpful but not neccessary

Students are expected to be self-motivated, curious and enthusiastic about machine learning on graphs. You'll get the most out of this course by completing the (moderate time commitment) coursework, so make sure you have the free time and energy needed for that.