DSE-MSU / DeepRobust

A pytorch adversarial library for attack and defense methods on images and graphs
MIT License
995 stars 192 forks source link

why the accuracy in pubmed is so high? #157

Open dkhonker opened 5 months ago

dkhonker commented 5 months ago

The code (based on docs):

from deeprobust.graph.data import Dataset
from deeprobust.graph.defense import GCN
data = Dataset(root='/tmp/', name='pubmed')
adj, features, labels = data.adj, data.features, data.labels
idx_train, idx_val, idx_test = data.idx_train, data.idx_val, data.idx_test
gcn = GCN(nfeat=features.shape[1],
          nhid=16,
          nclass=labels.max().item() + 1,
          dropout=0.5, device='cpu')
gcn = gcn.to('cpu')
gcn.fit(features, adj, labels, idx_train) # train without earlystopping
gcn.fit(features, adj, labels, idx_train, idx_val, patience=30) # train with earlystopping
gcn.test(idx_test)

And i get the test accuracy is ~86%.

But from paperswithcode and GCN paper, the accuracy of gcn is ~80%.

Do you know what caused this?