Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add XENetConv convolution layer #9869

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

minirawat
Copy link

As requested in issue tracker #8257 (#8257),
this PR implements the XENet Convolution layer as outlined in the paper:

  > [XENet: Using a new graph convolution to accelerate the timeline for protein design on quantum computers](https://www.biorxiv.org/content/10.1101/2021.05.05.442729v1)
  > Jack B. Maguire, Daniele Grattarola, Eugene Klyshko, Vikram Khipple Mulligan, Hans Melo

This PR implements:

  • A XENetConv convolution layer as outlined in the above paper for PyG framework
  • Set of test cases (basic) to validate the implementation
  • I have tested this with Cora dataset and was able to achieve an Test accuracy of 53% with my
    base hyperparameters. I could see the accuracy go up to 63% by manually experimenting
    with different hyperparameter values.
    • I did try testing this with the ZINC dataset as this is probably a more realistic dataset for this model
      as discussed here (Graph classification with node and edge features benchmark #2198). However, I am
      running into issues with the ZINC data processing step in PyG. I’ll investigate this as a follow up and
      will file any relevant issue tickets to PyG, as needed.
  • I will also follow up with an example implementation with the Cora dataset as a separate PR.
  • Ran pytest and all test cases pass
  • All linting checks pass

This was done as part of the course work for CS224W.

Benchmark from the Cora run:

Epoch 010, Loss: 1.7223, Val Acc: 0.2220, Test Acc: 0.2140
Epoch 020, Loss: 1.6110, Val Acc: 0.2520, Test Acc: 0.2670
Epoch 030, Loss: 0.6450, Val Acc: 0.4060, Test Acc: 0.3900
Epoch 040, Loss: 2.5172, Val Acc: 0.2460, Test Acc: 0.2500
Epoch 050, Loss: 0.5935, Val Acc: 0.3260, Test Acc: 0.3250
Epoch 060, Loss: 0.0863, Val Acc: 0.4620, Test Acc: 0.4710
Epoch 070, Loss: 0.0225, Val Acc: 0.4700, Test Acc: 0.4590
Epoch 080, Loss: 0.0136, Val Acc: 0.4520, Test Acc: 0.4700
Epoch 090, Loss: 0.0048, Val Acc: 0.4780, Test Acc: 0.4970
Epoch 100, Loss: 0.0022, Val Acc: 0.4740, Test Acc: 0.4830
Epoch 110, Loss: 0.0012, Val Acc: 0.4700, Test Acc: 0.4780
Epoch 120, Loss: 0.0009, Val Acc: 0.4600, Test Acc: 0.4800
Early stopping at epoch 121
Best Test Accuracy: 0.5260

@akihironitta akihironitta changed the title Add XENetConv convolution layer as requested in issue ticket #8257 Add XENetConv convolution layer Dec 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants