Skip to content

Commit 9154519

Browse files
committed
Updated readme and comment.
1 parent 7232e6a commit 9154519

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

research/gam/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,20 @@ More details can be found in our
4040
[slides](https://drive.google.com/open?id=1tWEMoyrbLnzfSfTfYFi9eWgZWaPKF3Uu) or
4141
[poster](https://drive.google.com/file/d/1BZNR4B-xM41hdLLqx4mLsQ4KKJOhjgqV/view).
4242

43+
## Updated Results
44+
A bug was discovered in the implementation of the GAM agreement regularization term after publication. We have fixed the bug (PR #82) and have rerun the affected experiments. Below are the updated results (note that the GAM* results are not affected).
45+
46+
Dataset | Method | Updated Accuracy (mean ± stderr)
47+
-------- | :---------: | :-------------:
48+
Cora | MLP + GAM | 80.2 ± 0.31
49+
  | GCN + GAM | 84.8 ± 0.06
50+
Citeseer | MLP + GAM | 73.2 ± 0.06
51+
  | GCN + GAM | 72.2 ± 0.44
52+
Pubmed | MLP + GAM | 75.6 ± 0.07
53+
  | GCN + GAM | 81.0 ± 0.09
54+
55+
Although some of these numbers are lower than what was originally reported, the takeaways presented in our paper still hold: GAM adds a significant boost to the original base models, and also performs better than other forms of regularization reported in our paper. Nevertheless, we appologise for any inconvenience caused by this bug!
56+
4357
## How to run
4458

4559
To run GAM on a graph-based dataset (e.g., Cora, Citeseer, Pubmed), from this

research/gam/gam/trainer/trainer_cotrain.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,10 @@ def _select_samples_to_label(self, data, trainer_cls, session):
356356
"""
357357
# Select the candidate samples for self-labeling, and make predictions.
358358
# Remove the validation and test samples from the unlabeled data, if there,
359-
# to avoid self-labeling them.
359+
# to avoid self-labeling them. We could potentially leave the test edges
360+
# but once a node self-labeled, is label is fixed for the remaining
361+
# co-train iterations, and would not take advantage of the improved
362+
# versions of the model.
360363
indices_unlabeled = data.get_indices_unlabeled()
361364
eval_ind = set(data.get_indices_val()) | set(data.get_indices_test())
362365
indices_unlabeled = np.asarray(
@@ -633,7 +636,9 @@ def train(self, data, **kwargs):
633636
logging.info(
634637
'--------- Cotrain step %6d | Accuracy val: %10.4f | '
635638
'Accuracy test: %10.4f ---------', step, val_acc, test_acc)
636-
639+
logging.info(
640+
'Best validation acc: %.4f, corresponding test acc: %.4f at '
641+
'iteration %d', best_val_acc, test_acc_at_best, iter_at_best)
637642
if self.first_iter_original and step == 0:
638643
logging.info('No self-labeling because the first iteration trains the '
639644
'original classifier for evaluation purposes.')

0 commit comments

Comments
 (0)