Recent Releases of neural-lam
neural-lam - v0.4.0
This release introduces a number of improvements to logging, multi-node training and variable rescaling, without making any major changes to the neural-lam structure.
Added
Add support for MLFlow logging and metrics tracking. #77 @khintz
Add support for multi-node training. #103 @simonkamuk @sadamov
Add option to clamp output prediction using limits specified in config file #92 @SimonKamuk
Add publication of releases to pypi.org. #71 @leifdenby, @observingClouds
Fixed
Only print on rank 0 to avoid duplicates of all print statements. #103 @simonkamuk @sadamov
Fix MLFlow exception import introduced in #77. #111 @observingClouds
Fix duplicate tensor copy to CPU #106 @observingClouds
Fix bug where the inverse_softplus used in clamping caused nans in the gradients #123 @SimonKamuk
Add standardization to state diff stats from mdp datastore #122 @SimonKamuk
Set ci/cd badges to refer to the new test matrix #130 @SimonKamuk
use correct split of data with the
--eval valor--eval testcli arguments #139 @SimonKamukFix step length calculation when dt >= 24h #141 @deinal
Maintenance
update ci/cd testing to use cuda 12.8 #140 @SimonKamuk
update ci/cd testing to use pre-commit v3.0.1 #140 @SimonKamuk
update AWS GPU ci/cd to use ami with larger (200GB) root volume and ensure nvme drive is used for pip venvn #126, @leifdenby
update ci/cd testing setup to install torch version compatible with neural-lam dependencies #115, @leifdenby
switch to new npyfiles MEPS and mdp DANRA test datasets which are coincident in time and space (on cropped ~100x100 grid-point domain) #110, @leifdenby
use dynamic versioning based on git tags and commit hashes #118, @observingClouds
- add detectanomaly=True to pl.Trainer in testtraining.py #124, @SimonKamuk
- Python
Published by joeloskarsson 9 months ago
neural-lam - v0.3.0
This release introduces Datastores to represent input data from different sources (including zarr and numpy) while keeping graph generation within neural-lam.
Added
- Introduce Datastores to represent input data from different sources, including zarr and numpy. #66 @leifdenby @sadamov
Fixed
Fix wandb environment variable disabling wandb during tests. Now correctly uses WANDB_MODE=disabled. #94 @joeloskarsson
Fix bugs introduced with datastores functionality relating visualation plots #91 @leifdenby
- Python
Published by leifdenby about 1 year ago
neural-lam - v0.2.0
Highlights
This release focuses on setting up the neural-lam repository and codebase to enable collaboration.
Detailed Changes
Added
Added tests for loading dataset, creating graph, and training model based on reduced MEPS dataset stored on AWS S3, along with automatic running of tests on push/PR to GitHub, including push to main branch. Added caching of test data to speed up running tests. #38 #55 @SimonKamuk
Replaced
constants.pywithdata_config.yamlfor data configuration management #31 @sadamovnew metrics (
nllandcrps_gauss) andmetricssubmodule, stddiv output option c14b6b4 @joeloskarssonability to "watch" metrics and log c14b6b4 @joeloskarsson
pre-commit setup for linting and formatting #6, #8 @sadamov, @joeloskarsson
added github pull-request template to ease contribution and review process #53, @leifdenby
ci/cd setup for running both CPU and GPU-based testing both with pdm and pip based installs #37, @khintz, @leifdenby
Changed
Clarify routine around requesting reviewer and assignee in PR template #74 @joeloskarsson
Argument Parser updated to use action="store_true" instead of 0/1 for boolean arguments. (https://github.com/mllam/neural-lam/pull/72) @ErikLarssonDev
Optional multi-core/GPU support for statistics calculation in
create_parameter_weights.py#22 @sadamovRobust restoration of optimizer and scheduler using
ckpt_path#17 @sadamovUpdated scripts and modules to use
data_config.yamlinstead ofconstants.py#31 @sadamovAdded new flags in
train_model.pyfor configuration previously inconstants.py#31 @sadamovmoved batch-static features ("water cover") into forcing component return by
WeatherDataset#13 @joeloskarssonchange validation metric from
maetormsec14b6b4 @joeloskarssonchange RMSE definition to compute sqrt after all averaging #10 @joeloskarsson
Removed
WeatherDataset(torch.Dataset)no longer returns "batch-static" component of training item (onlyprev_state,target_stateandforcing), the batch static features are instead included in forcing #13 @joeloskarsson
Maintenance
simplify pre-commit setup by 1) reducing linting to only cover static analysis excluding imports from external dependencies (this will be handled in build/test cicd action introduced later), 2) pinning versions of linting tools in pre-commit config (and remove from
requirements.txt) and 3) using github action to run pre-commit. #29 @leifdenbychange copyright formulation in license to encompass all contributors #47 @joeloskarsson
Fix incorrect ordering of x- and y-dimensions in comments describing tensor shapes for MEPS data #52 @joeloskarsson
Cap numpy version to < 2.0.0 (this cap was removed in #37, see below) #68 @joeloskarsson
Remove numpy < 2.0.0 version cap #37 @leifdenby
turn
neural-laminto a python package by moving all*.py-files into theneural_lam/source directory and updating imports accordingly. This means all cli functions are now invoke through the package name, e.g.python -m neural_lam.train_modelinstead ofpython train_model.py(and can be done anywhere once the package has been installed). #32, @leifdenbymove from
requirements.txttopyproject.tomlfor defining package dependencies. #37, @leifdenbyAdd slack and new publication info to readme #78 @joeloskarsson
Compatibility
This version has been tested with Python 3.9-3.12.
Upgrade Steps
To upgrade to neural-lam v0.2.0:
Update your local version:
-
git pullthe latest changes from the repository and install locallypip install -e . - Note: This release is not yet available on PyPI. You will need to install it from the GitHub repository.
-
Adapt any code relying on constants previously defined in
neural_lam/constants.pyto instead read them from the new YAML config file.
Links
- Python
Published by sadamov over 1 year ago
neural-lam - v0.1.0
Initial version of Neural-LAM, reproduces the workshop paper.
- Python
Published by joeloskarsson about 2 years ago