ML Training Course¶
This four-day course focuses on machine learning for numerical weather prediction (NWP).
Course Modules:¶
0. ML Basics¶
- 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.
1. Model Debugging¶
- 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.
2. Graph Neural Networks (GNNs)¶
- 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.
3. Explainable AI (XAI)¶
- 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.
Getting Started¶
- 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.
Using the Course at home¶
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.
Using the cloud¶
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:
0. ML Basics¶
Neural Network¶
Linear Regression¶
XGBoost¶
1. Model Debugging¶
2. Graph Neural Networks (GNNs)¶
3. Explainable AI (XAI)¶
These are provided as "additional options" and we unfortunately cannot provide individual support for these platforms.
Setting Up Your Environment¶
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.
Using Conda¶
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
Using Pipenv¶
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 Setup¶
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!