Implementing DGCNN using dgl?

Is the architecture presented in “An End-to-End Deep Learning Architecture for Graph Classification” implemented in the dgl? i only saw the tutorial for GCN, so how can i implement the DGCNN in dgl?

for example, is the implementation provided in the tutorials a GCN or DGCNN? :

https://docs.dgl.ai/en/0.4.x/tutorials/basics/4_batch.html

The model implemented in the tutorial is based on GCN. I’m not familiar with DGCNN, do you have a description of it? It seems that the server for the paper is down.

you can download it from here : https://www.cse.wustl.edu/~ychen/public/DGCNN.pdf (just checked its up)
there was also a similar question before in here which based on the answer GraphConv is the same as DGCNN? :

also there is a mention of DGCNN in this code :

https://docs.dgl.ai/en/0.4.x/_modules/dgl/nn/pytorch/glob.html

it is confusing me as well because i don’t understand the difference between GCN and DGCNN because up until now i thought DGCNN is just GCN with more than one GraphConv layer and just averaging the nodes at the end. but it seems like it also has sort pooling and other stuff in it. so how can i implement DGCNN using dgl? what should i change in the graph classification code using GraphConv which is provided here : https://docs.dgl.ai/en/0.4.x/tutorials/basics/4_batch.html

1 Like

This is also in the paper regarding their difference with GCN :
“Note that our graph convolution form is similar to the spectral filter proposed in (Kipf and Welling 2016, aka GCN) – it also propagates neighboring nodes to center except for using a different propagation matrix. In fact, our graph convolution form (1) also has a spectral formulation”

  1. Change GraphConv(...) to GraphConv(..., norm='right').
  2. Use Tanh rather than ReLU for the nonlinearity after each GraphConv layer. For a reference, see here.
  3. Concatenate the output of all GraphConv layers and pass the result to a SortPooling layer. DGL has a built-in implementation for SortPooling here.
  4. The rest operations can be found here and here.
2 Likes

@John_smith have you implemented DGCN as @mufeili suggested?