Deep Learning Fundamentals: Code Materials and Exercises
This repository contains code materials & exercises for Deep Learning Fundamentals course by Sebastian Raschka and Lightning AI.
- Link to the course website: https://lightning.ai/pages/courses/deep-learning-fundamentals/
- Link to the discussion forum: https://github.com/Lightning-AI/dl-fundamentals/discussions
- Reach out to Lightning & Sebastian on social media: @LightningAI @rasbt
For other announcements, updates, and additional materials, you can follow Lightning AI and Sebastian on Twitter!
Links to the materials
Unit 1. Welcome to Machine Learning and Deep Learning
- 1.1 What Is Machine Learning?
- 1.2 How Can We Use Machine Learning?
- 1.3 A Typical Machine Learning Workflow (The Supervised Learning Workflow)
- 1.4 The First Machine Learning Classifier
- 1.5 Setting Up Our Computing Environment
- 1.6 Implementing a Perceptron in Python
- 1.7 Evaluating Machine Learning Models
- Unit 1 exercises
Unit 2. First Steps with PyTorch: Using Tensors
- 2.1 Introducing PyTorch
- 2.2 What Are Tensors?
- 2.3 How Do We Use Tensors in PyTorch?
- 2.4 Improving Code Efficiency with Linear Algebra
- 2.5 Debugging Code
- 2.6 Revisiting the Perceptron Algorithm
- 2.7 Seeing Predictive Models as Computation Graphs
- Unit 2 exercises
Unit 3. Model Training in PyTorch
- 3.1 Using Logistic Regression for Classification
- 3.2 The Logistic Regression Computation Graph
- 3.3 Model Training with Stochastic Gradient Descent
- 3.4 Automatic Differentiation in PyTorch
- 3.5 The PyTorch API
- 3.6 Training a Logistic Regression Model in PyTorch
- 3.7 Feature Normalization
- Unit 3 exercises
Unit 4. Training Multilayer Neural Networks
- 4.1 Dealing with More than Two Classes: Softmax Regression
- 4.2 Multilayer Neural Networks and Why We Need Them
- 4.3 Training a Multilayer Perceptron in PyTorch
- 4.4 Defining Efficient Data Loaders
- 4.5 Multilayer Neural Networks for Regression
- 4.6 Speeding Up Model Training Using GPUs
- Unit 4 exercises
Unit 5. Organizing your PyTorch Code with Lightning
- 5.1 Organizing Your Code with PyTorch Lightning
- 5.2 Training a Multilayer Perceptron in PyTorch Lightning
- 5.3 Computing Metrics Efficiently with TorchMetrics
- 5.4 Making Code Reproducible
- 5.5 Organizing Your Data Loaders with Data Modules
- 5.6 The Benefits of Logging Your Model Training
- 5.7 Evaluating and Using Models on New Data
- 5.8 Add functionality with callbacks
Unit 6. Essential Deep Learning Tips & Tricks
- 6.1 Model Checkpointing and Early Stopping
- 6.2 Learning Rates and Learning Rate Schedulers
- 6.3 Using More Advanced Optimization Algorithms
- 6.4 Choosing Activation Functions
- 6.5 Automating The Hyperparameter Tuning Process
- 6.6 Improving Convergence with Batch Normalization
- 6.7 Reducing Overfitting With Dropout
- 6.8 Debugging Deep Neural Networks