A comprehensive PyTorch workshop covering the fundamentals and advanced techniques of deep learning.
- Introduction to Tensors
Learn about PyTorch tensors, the foundational data structure, and how to manipulate them. - Gradient and Autograd
Understand gradients, automatic differentiation, and how PyTorch handles backpropagation withautograd
. - Perceptron and AdaLiNe
Explore the basics of the simplest neural network model (perceptron) and Adaptive Linear Neuron (Adaline). - Regression Models
Implement linear and logistic regression using PyTorch, including model training and prediction. - Multi-Layer Perceptrons
Implement and explore multi-layer perceptron (MLP) for more complex tasks. - Radial Basis Function Networks
Implement and explore Radial Basis Function (RBF) networks and how they differ from traditional neural networks. - Convolutional Neural Networks
Explore concepts around convolutional neural networks (CNNs). - Feature Extraction
Learn how to extract features from pre-trained models for downstream tasks. - Transfer Learning
Apply transfer learning by using pre-trained models for a new tasks. - Fine-Tuning Models
Understand how to fine-tune models by updating specific layers while freezing others. - Recurrent Neural Networks
Explore concepts around recurrent neural networks (RNNs).
A collection of concepts and tools utilized in the main notebooks for training models, ...
- Activation Functions
Study different activation functions (ReLU, Sigmoid, Tanh, ...) and their roles in neural networks. - Checkpoints
Learn how to save and load model checkpoints to resume training or for inference. - Custom Implementations
Learn how to define custom models, dataset, loss function, ... using PyTorch's class-based approach. - Working with Datasets
Understand how to work with datasets in PyTorch usingtorch.utils.data.Dataset
andtorch.utils.data.DataLoader
. - Parameters vs. Hyperparameters
Understand the difference between parameters and hyperparameters in neural networks. - Loss Functions
Dive into common loss functions used in neural networks, including MSE, Cross-Entropy, and others. - Normalization Techniques
Understand normalization techniques such as Batch Normalization and Layer Normalization. - Vision Transforms
Learn to apply transforms like data augmentation on datasets usingtorchvision.transforms.v2
. - Word Embeddings
Explore different word embedding techniques and their applications in natural language processing.
- CNN Architectures
Implementation details are provided in the README files within the parent directories.
- π¨βπ» Programming Fundamentals
- Proficiency in Python (data types, control structures, functions, classes, etc.).
- My Python Workshop: github.com/mr-pylin/python-workshop
- Experience with libraries like NumPy, Pandas and Matplotlib.
- My NumPy Workshop: github.com/mr-pylin/numpy-workshop
- My Pandas Workshop: Coming Soon
- My Data Visualization Workshop: github.com/mr-pylin/data-visualization-workshop
- Proficiency in Python (data types, control structures, functions, classes, etc.).
- π£ Mathematics for Machine Learning
- π² Linear Algebra: Vectors, matrices, matrix operations.
- Linear Algebra Review and Reference written by Zico Kolter.
- Notes on Linear Algebra written by Peter J. Cameron.
- MATH 233 - Linear Algebra I Lecture Notes written by Cesar O. Aguilar.
- π Calculus: Derivatives, gradients, partial derivatives, chain rule (for backpropagation).
- Lecture notes on advanced gradient descent written by ClΒ΄ement W. Royer.
- MATH 221 β CALCULUS LECTURE NOTES VERSION 2.0 written by Sigurd Angenent.
- Calculus written by Gilbert Strang.
- π² Probability & Statistics: Probability distributions, mean/variance, etc.
- π² Linear Algebra: Vectors, matrices, matrix operations.
This project was developed using Python v3.12.3. If you encounter issues running the specified version of dependencies, consider using this specific Python version.
You can install all dependencies listed in requirements.txt using pip:
pip install -r requirements.txt
- Open the root folder with VS Code:
- Windows/Linux:
Ctrl + K
followed byCtrl + O
- macOS:
Cmd + K
followed byCmd + O
- Windows/Linux:
- Open
.ipynb
files using Jupyter extension integrated with VS Code. - Allow VS Code to install any recommended dependencies for working with Jupyter Notebooks.
βοΈ Notes:
- The table of contents embedded in the notebooks is not fully functional on GitHub!
- To navigate the table of contents effectively, open the notebooks locally or view them via nbviewer for a better experience.
- Source Code:
- Over 3500 contributors are currently working on PyTorch.
- Link: github.com/pytorch/pytorch
- Website:
- The official website for PyTorch, offering comprehensive documentation, tutorials, and resources for deep learning and machine learning with PyTorch.
- Link: pytorch.org
- Pytorch Documentations:
- Detailed and comprehensive documentation for all PyTorch features and functionalities, including tutorials and guides to help you get started and master PyTorch.
- Link: pytorch.org/docs/stable/index.html
- TorchVision Documentations:
- The torchvision package [part of the PyTorch] consists of popular datasets, model architectures, and common image transformations for computer vision.
- Link: pytorch.org/vision/stable/index.html
- TorchAudio Documentation:
- The torchaudio package [part of the PyTorch] consists of audio I/O and signal processing functionalities, enabling efficient loading, transforming, and manipulating audio.
- Link: pytorch.org/audio/stable/index.html
- A fundamental package for scientific computing in Python, providing support for arrays, matrices, and a large collection of mathematical functions.
- Official site: numpy.org
- A powerful, open-source data analysis and manipulation library for Python.
- Pandas is built on top of NumPy.
- Official site: pandas.pydata.org
- A comprehensive collection of Python libraries for creating static, animated, and interactive visualizations: Matplotlib, Seaborn, and Plotly.
- Official sites: matplotlib.org | seaborn.pydata.org | plotly.com
Any mistakes, suggestions, or contributions? Feel free to reach out to me at:
I look forward to connecting with you! πββοΈ
This project is licensed under the Apache License 2.0.
You are free to use, modify, and distribute this code, but you must include copies of both the LICENSE and NOTICE files in any distribution of your work.
- Original Images:
- The images located in the ./assets/images/original/ folder are licensed under the CC BY-ND 4.0.
- Note: This license restricts derivative works, meaning you may share these images but cannot modify them.
- Third-Party Assets:
- Additional images located in ./assets/images/third_party/ are used with permission or according to their original licenses.
- Attributions and references to original sources are included in the code where these images are used.