As the discriminator network will recieves as input a graph (A, H) from either the genrator or from the training set, we'll need to implement graph convolutional layers, which allows us to operate on graphs. This means that input to the discriminator network will first pass through graph convolutional layers, then an average-pooling layer, and finally a few fully-connected layers. The final output should be a scalar (for each example in the batch) which indicates the \"realness\" of the associated input (in this case a \"fake\" or \"real\" molecule).