These modules were originally developed for a machine learning and artificial intelligence (ML/AI) bootcamp organized by PNNLβs ACES division, designed to explore the application of ML models within the geophysical sciences. The bootcamp, held in Fall 2022, was highly successful and was featured in an article published by Eos: βA Two-Step Approach to Training Earth Scientists in AIβ. The modules have since been updated and are now publicly available under IPID 33445, IR#373274.
Each lesson module covers a different ML technique, progressing in complexity from one lesson to the next. Users of these lessons should be proficient in python and familiar with using jupyter notebooks. Each module is accompanied with a powerpoint or pdf lesson, well commented python scripts, data, and a requirements.yaml file. Further inquiries can be directed to Xingyuan Chen.
Each lesson was designed independently by an author who's expertise aligns with the ML lesson. The structures may differ, but each folder contains:
- a clearly ordered set of notebooks
- a dedicated
aces.ymlenvironment file - additional resources (datasets, powerpoints, etc)
This repo contains some large files. You will need to enable Git Large File Storage.
.
git lfs install
git clone https://github.com/pnnl/AI_Modules_for_Earth_Science.git
cd AI_Modules_for_Earth_Science
Each lesson includes an unique aces.yml file containing all required dependencies. Always activate the environment inside each lesson folder before running its notebooks, as dependencies may differ between lessons. You can create the conda environment with:
.
conda env create -f aces.yml
conda activate aces
.
jupyter notebook
Lessons should be followed in order and get progressively more technical.
.
βββ Lesson_01 ML 101/
βββ Data
βββ Figures
βββ Scripts
βββ start here: ML101_Forests.ipynb/
βββ Readme
βββ contains detailed instruction for getting started/
βββ aces.yml
βββ Powerpoint/
βββ Lesson_02 Artificial Neural Networks/
βββ Part 1 Deep Neural Networks/
βββ Data
βββ Figures
βββ Scripts/
βββ start here: 1_load_data_notebook.ipynb/
βββ Part 2 Unsupervised Neural Networks/
βββ Data
βββ Scripts/
βββ start here: Unsupervised_Learning_Neural_Nets.ipynb/
βββ Readme
βββ aces.yml
βββ Powerpoint/
βββ Lesson_03 Keras (library)/
βββ Data
βββ Scripts
βββ start here: keral_reg_model.ipynb/
βββ Readme
βββ aces.yml
βββ Powerpoint/
βββ Lesson_04 Convolutional Neural Networks/
βββ Data
βββ Scripts
βββ start here: 1_load_data_notebook.ipynb/
βββ PreProcess_Models
βββ Readme
βββ aces.yml
βββ Powerpoint/
βββ Lesson_05 Generative Adversarial Networks/
βββ Figures
βββ Scripts
βββ start here: mnist_gan_example.ipynb/
βββ mnist_generator
βββ modis_generator
βββ Readme
βββ aces.yml
βββ PDF/
βββ Lesson_06 pytorch & tensor flow (libraries)/
βββ Data
βββ Scripts
βββ start here: Pytorch_DNN_example.ipynb/
βββ Readme
βββ aces-torch.yml
βββ Powerpoint/
βββ Lesson_07 RNN/
βββ Data
βββ Figures
βββ Scripts
βββ start here: Rainfall_runoff_modeling.ipynb/
βββ Readme
βββ aces-torch.yml
βββ Powerpoint/
Thank you to Xingyuan Chen, Jiang Peishi, Sing-Chun (Sally) Wang, Maruti Mudunuru, Erol Cromwell, Robert Hetland, Andrew Geiss, Melissa Swift, Robin Cosbey, Samuel Dixon, Tirthankar (TC) Chakraborty, Lexie Goldberger, Heidi Medford, Jessica Baweja, Amanda Hutton, Tim Carlson, Ian Smith, Ian Kraucunas, Larry Berg, and Tim Scheibe