This four-day course focuses on machine learning for numerical weather prediction (NWP).
- Overview: Introduction to fundamental ML concepts and terminologies.
- Key Topics: Supervised learning, basic algorithms, feature engineering, and metrics.
- Tools & Technologies: Python, NumPy, Scikit-learn, keras, XGBoost.
- Overview: Techniques and strategies for identifying and fixing issues in ML models.
- Key Topics: Overfitting/underfitting, error analysis, model validation methods, and debugging tools.
- Tools & Technologies: PyTorch.
- Overview: Understanding and implementing GNNs for structured data.
- Key Topics: Graph theory basics, GNN architectures, applications in climate and weather prediction.
- Tools & Technologies: H3, Scikit-learn, PyTorch Geometric.
- Overview: Methods for interpreting and understanding the decisions made by ML models.
- Key Topics: Importance of model interpretability, common XAI techniques, applications in weather and climate science.
- Tools & Technologies: SHAP, TensorFlow, PyTorch.
- Prerequisites: Familiarity with Python programming and basic mathematics (linear algebra, calculus, and probability).
- Setup: Instructions for setting up the necessary environment and tools are provided in the
setup
directory. - Exercises: Each module includes exercises to practice the concepts learned. Solutions are available for comparison and learning.
For the course itself, we prepared VMs, if you want to run the notebooks at home, you have to install the dependencies, if you want to run them online, you have to remember to upload the data to the virtual environment.
There are cloud providers that give you a "GPU for free in a Jupyter-like environment" that can run these notebooks from Github directly.
Realistically, many of these notebooks don't require a GPU, but they do speed up execution significantly.
In the cloud you may not have all dependencies available, as this is more of a secondary use-case, you will have to install missing dependencies using the Jupyter magic:
!pip install <missing-package>
You can run the whole repository on a general CPU-based Binder online, by clicking this badge:
or run individual notebooks on different services below:
These are provided as "additional options" and we unfortunately cannot provide individual support for these platforms.
You'll need to set up your Python environment. We show both pipenv
and conda
for environments and managing dependencies.
Follow the instructions below based on the tool of your choice.
For those who prefer conda
, follow these steps to create an environment:
- Install Conda: Ensure that you have either Anaconda or Miniconda installed. If not, download and install from Anaconda or Miniconda.
- Create Environment and Install Packages: Use the
environment.yml
file to create a Conda environment. Run:conda env create -f environment.yml
- Activate the Environment: Once the environment is created, you can activate it by running:
conda activate ecmwf-ml-course
If you prefer to use pipenv
, which automatically creates and manages a virtual environment for your projects, follow these steps:
-
Install Pipenv: If you haven't installed
pipenv
yet, you can do so by running:pip install pipenv
On Mac you can also use homebrew:
brew install pipenv
-
Create a Virtual Environment and Install Dependencies: Navigate to the project's root directory and run:
pipenv install --dev
If you have a
requirements.txt
file and wish to create the environment specifically with it, use:pipenv install -r requirements.txt
After setting up your environment, verify that all packages were installed correctly by running:
python -m pip list
or, if you're using Conda:
conda list
Now, you're all set to start the course exercises!