In this course, I will explain in a practical and intuitive way how PyTorch works. We will go beyond the use of the API which will allow you to continue your journey in machine learning and/or differentiable programming with more confidence.
This course is divided into three parts.
In the first part, we will implement (in Python, from scratch) our own differentiable programming framework, which will be very similar to PyTorch. This will allow you to understand how PyTorch, TensorFlow, JAX, etc. work. Then, we will focus on PyTorch and see the basic tensor operations, the calculation of gradients and the use of graphics cards (GPUs).
In the second part, we will focus on gradient descent algorithms (essential for training neural networks). We will implement the simulator of a ballistic problem and see how to use the power of PyTorch to solve an optimization problem (this pedagogical problem can be easily extended to real problems, such as fluid mechanics simulations, for those who wish). We will also see how to use optimizers and how to combine them with schedulers to make them even more efficient.
Finally, we will tackle neural networks. We will solve an image classification problem, first with an MLP, and then with a CNN.
If this program enchants you, don't wait any longer!