User-guide introduction

IGNNITION enables users to define potentially very complex GNNs in a matter of a few hours. To do so, we require three main steps:

MSMP definition

STEP 1: Design your model

First of all, the user must define the inherent architecture of the GNN. This task can be very challenging, especially as conceptualizing the elements forming the GNN is not trivial. To help to conceptualize the model, we propose a novel high-level abstraction, which you can check at Multi-stage message passing, and which will serve as the keystone of our final implementation.

Once we have conceptualized our GNN, we must now translate it into the required yaml format. To do so, check generate your GNN, where you will find all the details regarding the general structure of the model_description.yaml file, which will contain the architecture of the GNN. To design each of these sections, you will need to use the available keywords, which you can find explained in keywords.

Once you have familiarized yourself with IGNNTION, we strongly recommend that you check out our library of examples, where you will find implementations of well-known papers. This should serve as a starting point for your implementation.

STEP 2: Adapt your dataset

Once you have designed the GNN, you need to generate/adapt your dataset to be readable by IGNNITION. IGNNITION has been specifically designed to make this task fast and very intuitive. Moreover, you will find all the details in generate your dataset and in a practical example at quick start tutorial.

STEP 3: Train and evaluate

Finally, we need only to call IGNNITION to train and evaluate this model. This can be done by two simple lines of Python code, which you will find at train and evaluate.

Optional: Debugging assistant

Of course, ML models typically require an extensive process of debugging to fix any possible malfunction. This task becomes especially cumbersome due to the black-box nature of ML, and even more so in the case of GNNs. To help in this regard, IGNNITION incorporates a debugging assistant that will help you greatly in this task. For more information, check debugging assistant.