Skip to content

Reproduce ICML '21 experiments #202

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

Closed
akash-isu opened this issue Nov 8, 2022 · 3 comments
Closed

Reproduce ICML '21 experiments #202

akash-isu opened this issue Nov 8, 2022 · 3 comments

Comments

@akash-isu
Copy link

Hi,

I want to reproduce the experiments in the ICML paper (specifically the Device Mapping task). I am doing a study on the performance of various code representations on this task and would be really helpful if I could reproduce it.

Is there a ready-to-use setup of that experiment anywhere?
Apologies if it's already there in the repo, and I was too stupid to find it.

@ChrisCummins
Copy link
Owner

Hi @akash-isu, the input/output datasets for the experiments are available online. Unfortunately the code to repro the experiments is old and hasn't been ported to the latest version of ProGraML yet. Please see this comment for further details.

Cheers,
Chris

@akash-isu
Copy link
Author

Hi Chris,

Thank you for your prompt response. I appreciate you pointing me to the right place.
However, I was looking more for the Device Mapping experiments. I know where to get the dataset. I was looking more for the model you implemented for the paper and would like to replicate the exact model. If you had any pointers to where I could find that, it'd be really helpful.

Thank you for your response and help.

Akash

@ChrisCummins
Copy link
Owner

Hi Akash, ah I see, I didn't realize that the older commit doesn't have the code for graph classification checked in! That's a shame. Hmm.

I was looking more for the model you implemented for the paper and would like to replicate the exact model. If you had any pointers to where I could find that, it'd be really helpful.

We used the same GGNN implementation for both node classification and graph classification. You could start by adapting the existing node classification code to graph classification by changing the way you construct the GGNN. For device mapping, graph_y_dimensionality=2 and node_y_dimensionality=0, for algorithmic classification graph_y_dimensionality=104 and node_y_dimensionality=0:

class Ggnn(Model):
"""A gated graph neural network."""
def __init__(
self,
vocabulary: Dict[str, int],
node_y_dimensionality: int,
graph_y_dimensionality: int,
graph_x_dimensionality: int,
use_selector_embeddings: bool,
test_only: bool = False,
name: str = "ggnn",
):

Hope that helps.

Cheers,
Chris

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants