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

Added GNN example #39

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Added GNN example #39

wants to merge 3 commits into from

Conversation

LewisLee26
Copy link

Added a graph neural network example jupyter notebook that uses some weather buoy data to predict missing data.

Copy link
Collaborator

@stevehadd stevehadd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Lewis, this is really exciting to see this material coming together, I've already learnt a lot. Wish I had more time to play with the code!

These are just some suggestions about how you might make the notebook even more useful, up to you which seem sensible and helpful, and which are not sensible, or would take too muchy work to be worth, and just ignore those, but maybe just comment on ones you don't think you'll act on.

- xarray=2024.6.0
- pip=24.0
- pip:
- tensorflow==2.12
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any particular reason why you needed to install tensorflow through pip, rather than conda?

Copy link
Author

@LewisLee26 LewisLee26 Aug 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tensorflow-gnn isn't available with conda (at least right now) so I thought it might be reasonable to into install both tensorflow and tensorflow-gnn with the same package manager to try and prevent issues. I'm pretty sure that I tried using conda for tensorflow and didn't have any problems so I don't believe it will make a major difference either way.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm just going to add comments here and references cells, which is not ideal. We should look at adding the "ReviewNB" app to your notebook.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notebook overall looks very good. For these notebooks I'd like to use a format based on this template by NOAA:
https://github.com/geo-rao/notebook-dev/blob/main/templates/NCAI_Training_Notebook_template%20-%20Distribution%20Copy.ipynb

So for example, it would be good include a reference section for any material you used . You could also include the data section. Also good would some conclusions after the final set of results.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that For our dataset we want there to be data reading from all weather buoys. should be something like
For our dataset we want there to be data readings from all weather buoys. . I think there are other words/phrases to review in this paragraph.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you might want to add a new heading after Clean data to reflect the next section is about Data preparation, making it ready to use with a GNN.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

usual good practice for QA/testing a notebook is to reset your kernel and choose "run all cells" to check that if you execute in order, evertyhing works. I've caught out many times thinking its OK but actually I'd done something manually that I deleted or moved to different position and the notebook doesn't actually work as published.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it would be interesting to make use of the %%time cell magic to time cell execution, to indicate which cells may take a while to execute, and also have a record of the execution time in the notebook.#
See docs here about "cell magic"
https://ipython.readthedocs.io/en/stable/interactive/magics.html

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once you've created graph tensor, it might be interesting to maybe pick out a small subset to show hat the transofrmation looks like? The idea is to help people understand what is in the graph tensor, so whatever makes sense to demonstrate what is actually in the graph tensor.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A plot of some of the values being predicted might be nice as part of the data exploration. Not sure what that looks like, but maybe a time series at a station, or for a specific time, the values at different stations? You know best what is sensible for this dataset.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might also be interesting to break down the metrics into different categories. e.g. how does performance different for different statuons, different years in the dataset.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't see in the notebook (probably there some where and I missed it), which variables are you predicting at the masked out stations. It might be worrth saying a bit more about the the masking, and showing some of the actual values that are predicted (see previous comment about showing some outputs at the end).

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

Successfully merging this pull request may close these issues.

2 participants