-
Notifications
You must be signed in to change notification settings - Fork 15
Feature/virtual nodes #26
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
base: main
Are you sure you want to change the base?
Conversation
depends on num_nodes
Some more notes:
|
Fixed a couple of more minor config-related incompatibility bugs. Also in case of single-device training, resolved ambiguity provided by Implemented (WIP) a model for simpler attention mechanism based pooling. Encodes a bit into the node features to indicate virtual (0) or real (1) and performs self-attention graph pooling. For now we do global, but would be straightforward to implement a hierarchical approach. |
…atDeepLearn_dev into feature/virtual-nodes
…atDeepLearn_dev into feature/virtual-nodes
…atDeepLearn_dev into feature/virtual-nodes
Summary
This is a very large PR, and contains all of the current work involving virtual-node GNNs, in addition to a variety of improvements and features to the preprocessing and config management pipeline. Below are some more details on the features integrated. These may not be comprehensive, so I'll try to update/explain more based on feedback. Some main issues to be further discussed:
General
main.py
entrypoint conceptual changes. We now have support for WandB sweeps. MatDeepLearn can now serve 1) original functionality, in which a config file is specified for a task 2) entrypoint for an automated sweep, in which the config is read from WandB rather than a file, and the task is self-contained 3) as a way to generate sweeps given a sweep configuration. This integrates with jobs (discussed next) and rather than immediately training, generates the commands needed to launch asynchronous sweeps. Sweeps can be run sequentially or in parallel (feature is still being ironed out) but parallel is recommended since runs are prone to failure.torch_geometric.data.Data
objects. Implements custom batching routines in order to work with some of the new attributes introduced by virtual nodes.Models
routines
concept, which is a way to organize model-augmenting sub-features such as custom pooling methods.layers
concept, which is a way to organize pieces of network architectures that do not function as standalone components.Preprocessing