muhanzhang / dgcnn Goto Github PK
View Code? Open in Web Editor NEWCode for "M. Zhang, Z. Cui, M. Neumann, and Y. Chen, An End-to-End Deep Learning Architecture for Graph Classification, AAAI-18".
License: MIT License
Code for "M. Zhang, Z. Cui, M. Neumann, and Y. Chen, An End-to-End Deep Learning Architecture for Graph Classification, AAAI-18".
License: MIT License
Hello Dr. Zhang,
Thank you for this impressive work!
May you kindly share the supplementary materials mentioned in the paper?
It seems many versions of DGCNN don't contain that material.
Thanks a lot in advance for your kind help
Hi~
Some other details I want to know, and look forward to your reply.
In the paper you said: For graphs with vertex labels or attributes, X can be the one-hot encoding matrix of the vertex labels or matrix of multidimensional vertex attributes.
so if the graph with 3 nodes without any node attribute, the X can represent as follow:
np.eye(3) =
[[1, 0, 0],
[0, 1, 0],
[0, 0, 1]]
and X.shape = (n, c)
, and c
exactly equal to n
, right?
if the answer is positive, what puzzle me is the dimension of W(W.shape = (c/n, c')
) in the first graph convolution layer will with different size graph by graph, but the W are shared among all input. How to explain and deal with this?
Second, I noticed the optimization method you used to minimize the loss function is SGD with ADAM
, what i want to know is whether we can't vectorization in this model, i.e. the batch_size only can be set to 1?
thanks sincerely!
It's a great job!
as you said in the paper, there are some details and information in the supplementary material, but the paper i download without the material, where i can get the them?
Hi~
If nodes in graph have different type(tag), how to build the matrix X
.
For example, one graph with 5 nodes and the tags of them are [0, 1, 1, 1, 2], and another one with 6 nodes and the tags are [0, 1, 1, 2, 3, 3](for sake of simplicity, assume only these two graphs in the dataset), under such case, what is the initial channels c
should be?
Maybe the c
equal to 4, so
[[1 0 0 0]
[0 1 0 0]
[0 1 0 0]
[0 1 0 0]
[0 0 1 0]]
and
[[1 0 0 0]
[0 1 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]
[0 0 0 1]]
are the X
of first and second graph, respectively?
I just wondering why the name contains deep.
This network cannot deep.. which part can be deep? you mean the last part?
We cannot add graph convolutional layer in the first part of network. Right?
I tried to run DGCNN on my own dataset, which is in the forms of python array,and I don't know how to load them in Torch.Any suggestions?
Run Main.m using MATLAB, turns out this error:
Traceback (most recent call last):
File "../../software/node2vec/src/main.py", line 14, in <module>
import networkx as nx
ImportError: No module named networkx
Error using dlmread (line 62)
The file 'data/embedding/USAir_1.emd' could not be opened because: No such file
or directory
Error in generate_embeddings (line 59)
node_embeddings = dlmread(['data/embedding/', data_name, '.emd']);
Error in graph2mat (line 62)
node_embeddings = generate_embeddings(A1, data_name_i, emd_method);
Error in SEAL (line 66)
[data, max_size] = graph2mat([train_pos; train_neg], [test_pos; test_neg],
A, h, ith_experiment, 0, data_name, include_embedding, include_attribute);
Error in Main (line 65)
parfor (ith_experiment = 1:numOfExperiment, workers)
I think the problem is MATLAB does not detect the correct python environment. Can you please help me to solve this?
What i want to know is that the Graph Convolution Layer how to accept different size of graph data as input? For Example, In the data set Mutag
, the nodes contains in each graph usually different, the nodes in mutag_1.graph
and mutag_2.graph
are 23 and 26, respectively, right?. How to deal with this?
I'm trying to run DGCNN on my dataset consisting in graphs of 100 nodes in which a k-clique (k=15) has been added or not. Unfortunately, the accuracy is staying at 50% while state of the art can perform 100%.
I tried with the following architecture:
th main.lua -dataName PLANTED -learningRate 1e-4 -maxEpoch 300 -nodeLabel nDegree -k 30 -outputChannels '32 32 32 1'
What do you think the problem can be here? Is it because of the high density of the adjacency matrix of such graphs ?
Hi I was wondering how exactly the rows are sorted during the pooling. If my output matrix Z from the last graph convolution is of size (n x f). Where f is the number of feature channels. How do I sort the rows? Or more in detail which channels do I use for sorting the vertexs?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.