Physics Informed Machine Learning with Pytorch and Julia
Abstract: In this workshop series, we would like to introduce the participants to two powerful tools for physics-informed machine learning, the Pytorch package and the Julia programming language. We will give an overview of the operating principles of both tools, including their core features and relative strengths, by examining concrete Physics-Informed Machine Learning applications. The workshop will be given using multi-modal presentation via lecture slides, example Jupyter notebooks, and code walkthroughs.
Instructors: Arvind Mohan and Nicholas Lubbers, Computational, Computer, and Statistical Division, Los Alamos National Laboratory
Location: In person as indicated in the Schedule below, and on zoom at https://arizona.zoom.us/s/83738249833 passcode: applied
Schedule: Link to documents
Day 1 April 22, 2024 | Time: 4:00pm Location: ENR2 Room S395 | The killer feature: Automatic Differentiation |
Day 2 April 23, 2024 | Time: 4:00pm Location: Math Bldg Room 402 | Automatic Differentiation in Julia Recording Day 2 |
Day 3 April 24, 2024 | Time: 4:00pm Location: ENR2 Room S395 | Physical Symmetries and Atomistic Machine Learning Recording Day 3 |
Day 4 April 25, 2024 | Time: 4:00pm Location: Math Bldg Room 402 | PDE learning and Scientific with Julia Recording Day 4 |
Day 5 April 26, 2024 | Time: 4:00pm Location: ENR2 Room S395 | Review and Best Practices |
Syllabus: Link to documents
Day 1: The killer feature: Automatic Differentiation
0 - Theory of automatic differentiation
1 - Example Notebooks: Introduction to Pytorch
2 - Example Notebooks: Tape-based Automatic Differentiation
Day 2: Automatic Differentiation in Julia
1 - The many algorithmic approaches to AD
2 - Example Notebooks: The Automatic Differentiation Ecosystem in Julia
Day 3: Physical Symmetries and Atomistic Machine Learning
0 - Symmetry, Invariance, and Equivariance with Graph Neural Networks
1 - Example Notebooks: Learning Potential Energy Surfaces
2 - Code walkthrough: Writing custom GPU kernels with Numba
3 - Code walkthrough: Cross-language integration: Pytorch to C++ and Julia
Day 4: PDE learning and Scientific with Julia
1 - Scientific Computing Integration with AD in Julia and Custom Adjoints
2 - Example Notebooks: GPU Computing in Julia
3 - Example Notebooks: Neural PDE Learning in Julia
4 - Example Notebooks: Data Processing and Cross language Integration
Day 5: Review and Best Practices
1 - Best Practices and Gotchas: Julia
2 - Best Practices and Gotchas: Pytorch
3 (or 2?) - Pytorch or Julia? Help me choose!