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

Integrate Fourier Neural Operator (FNO) work #57

Open
3 of 5 tasks
bnubald opened this issue Feb 27, 2024 · 4 comments
Open
3 of 5 tasks

Integrate Fourier Neural Operator (FNO) work #57

bnubald opened this issue Feb 27, 2024 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@bnubald
Copy link

bnubald commented Feb 27, 2024

Build integration of @pyatsysh FNO work into the IceNet pipeline.

The goals are as follows:

  • Get the current demo notebook running, figure out dependencies such that it runs.
  • Get it running on BAS HPC, and create a reproducible environment (e.g. conda) that can be shared.
  • Demonstrator notebook of JAX + UNet with the IceNet library/pipeline.
  • Demonstrator notebook integration with the IceNet library/pipeline - using the IceNet dataloaders and output processing.
  • Integration with the icenet-pipeline for end to end runs.

@JimCircadian

@bnubald
Copy link
Author

bnubald commented Mar 3, 2024

First task complete.

The second one is also mostly complete. I have run through the notebook on BAS HPC.

Still need to run through some updated dependency API changes with Orbax for checkpointing before completing the second task.

Will do so later this week.

@bnubald
Copy link
Author

bnubald commented Mar 10, 2024

Added BAS HPC conda env file + nb run, and pushed commit to the working repo.

First two tasks are now complete.

Moving onto third task: Creation of a demonstrator notebook using IceNet dataloader and post processing (Need to use weekly averaging instead of daily inputs).

For initial implementation, will probably add it simply as an additional step after icenet data processing - for now). Although, do at some point need to allow monthly averaging to recreate the original paper.

@bnubald
Copy link
Author

bnubald commented Mar 26, 2024

As a start to integrating JAX model development usage with IceNet, a demonstrator of Jax derived (Flax) UNet implementation (daily forecasting) using IceNet data download and plotting can be found here (Using Pytorch dataloader - deriving from work for #54 ).

The notebook also covers the usage of common JAX libraries such as Flax, Optax, Orbax, CommonLoopUtils to develop the model, train/validation/predict loops, usage of best checkpointing (based on validation rmse in this example) to save training states and load best one, custom weighted metrics, and more for model development.

Next, will be focusing on interface for FNO work, including pre-processing stages that are specific to this project.

@bnubald bnubald moved this to Todo in IceNet Roadmap Sep 6, 2024
@bnubald
Copy link
Author

bnubald commented Sep 6, 2024

Links in with updates made (including torch dataloading) for #54, and pipeline integration architecture design with icenet v0.3.0_dev.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Todo
Development

No branches or pull requests

1 participant