
Learn PyTorch fundamentals to advanced models, including numpy and pandas basics, tensors, neural networks, CNNs and RNNs with lstm, data preparation, training, testing, and GPU use in Google Colab.
Discover why Google Colab is chosen for this course as an online, installation-free coding platform with preinstalled packages, avoiding pip or conda setup.
Open Google Colab in your browser, create a new notebook, and rename it; run cells with the run button or shortcuts, and save or export as ipynb, py, or pdf.
Learn how to import numpy, create one-dimensional and two-dimensional arrays, inspect shape and size, perform indexing and slicing, and execute element-wise and matrix-style operations.
Import pandas as pd to build dataframes, customize columns and indices, and use iloc and loc for filtering as well as replace or drop operations.
Explore tensors as PyTorch's core data structures, compare them to numpy arrays, and learn how GPU execution with CUDA enables scalable neural network computations.
Import numpy and torch, create an empty numpy array and a tensor to compare types. Show that torch.from_numpy shares memory with the original array, while torch.tensor copies data for independence.
Explore basic terms about neural networks by comparing neuron parts to a simple model with input, hidden, and output layers, weights, bias, and activation function.
Learn how activation functions like threshold, sigmoid, hyperbolic tangent, and ReLU decide activations, shape gradients, and influence output ranges, classification, regression, and neural network training efficiency.
Discover how neural networks connect input, hidden, and output layers with weighted connections, including sparse weights, to produce predictions, compute cost, and use backpropagation to minimize error across a dataset.
Master gradient descent optimization by comparing batch and stochastic approaches, tuning learning rates, and tracing convergence toward local and global minima in feedforward networks.
Learn how to build a PyTorch multi-layer perceptron for regression using the California housing dataset, including data loading, feature selection, train-test split, tensor conversion, and normalization using training data statistics.
Build a PyTorch multi-layer perceptron regression model by coding Linear regression class that inherits from nn.Module, with init and forward methods using a hidden layer with ReLU and output layer.
Learn how to train a PyTorch linear regression model using MSE loss and SGD, including forward and backward passes, epochs, and plotting the loss with matplotlib.
Test a trained PyTorch model within a torch.no_grad context to save memory, then compute the test loss, mean absolute error, and mean absolute percentage error from test predictions.
Define deep artificial neural networks as multi-layer perceptrons with more than one hidden layer. Clarify that deep nets include MLPs and that CNNs or RNNs will be discussed later.
Develop a deep artificial neural network for image classification using CIFAR-10 in PyTorch, leveraging torchvision datasets, transforms to tensor, and train and test data loaders with batch size 100.
Implement a deep neural network in PyTorch with two hidden layers, fc1 and fc2, using ReLU, flattening inputs with x.view, and training with cross-entropy loss and SGD.
Train a PyTorch image classification model with loss and accuracy tracking over a 50-epoch training loop, applying cross-entropy loss, backpropagation, and optimizer steps, then plot training loss to assess performance.
Run through testing a PyTorch image classification model, computing outputs with no grad, calculating test accuracy from predictions, and building a 10x10 confusion matrix to analyze misclassifications.
Explain how computers read images by converting pixels into 0-255 grayscale values in a 2d array, then into rgb color channels as a 3d array.
Explore how a convolutional layer uses image filters (kernels) to produce feature maps by sliding a 3x3 matrix across an image, with stride and padding.
Learn how pooling layers downsample feature maps to reduce dimensionality and computation, and curb overfitting, while exploring max pooling and mean pooling with a 2x2 window and stride 2.
Flattening reshapes pooled feature maps into a single long vector for the fully connected layer. This 2D to 1D transformation is crucial before feeding inputs to the network.
See how an input image passes through convolutional and pooling layers to form feature maps; ReLU introduces non-linearity before flattening and connecting to a fully connected layer.
Build a CNN image classification workflow in PyTorch by loading the CIFAR-10 dataset, applying transforms, normalizing to -1 to 1, and setting up train and test loaders for batch processing.
Build a PyTorch cnn for cifar-10 image classification by stacking conv, pooling, and relu layers, flattening, and feeding into fully connected layers trained with cross-entropy loss and sgd optimizer.
Train a convolutional neural network for image classification in PyTorch, mirroring artificial neural network training, track epoch loss and accuracy, measure training time, and fix indentation issues.
Test a PyTorch CNN for image classification by evaluating loss, checking for overfitting, and computing test accuracy (about 64%), validated with a confusion matrix.
Compare CPUs and GPUs, noting sequential processing on CPUs and parallel processing on GPUs with thousands of cores. Learn about NVIDIA CUDA and Colab for PyTorch training.
Install CUDA and enable PyTorch GPU support without Google Colab. Follow the start locally steps for Windows, Linux, or Mac, install CUDA toolkit, update environment variables, then verify with nvidia-smi.
Learn how to enable CUDA in Google Colab and move a PyTorch CNN to a GPU to compare GPU versus CPU training speed.
Learn to save and load a PyTorch model and optimizer state using a state dict and torch.save, then reload with load_state_dict to resume testing without retraining.
Explore recurrent neural networks for time series analysis, highlighting memory through feedback loops, the contrast with feedforward nets, and back propagation through time (Bptt) for weight updates.
Explore how long-term dependency challenges in RNNs are solved by LSTM, detailing the forget layer, updates layer, and output layer, and how to implement in Python for time series.
Create an LSTM-based time series forecast in Python with PyTorch on a New York dataset. Normalize with MinMaxScaler, visualize the data, and build 24-hour input windows for train and test.
Learn to build a PyTorch time series forecasting model with an LSTM, defining input, hidden, and output sizes, implementing forward pass, and training with mean squared error loss and Adam.
Train a PyTorch LSTM for time series forecasting, resetting hidden and cell states each epoch. Extract batches from X_train and Y_train, compute loss, and backpropagate to update the model.
Master time series forecasting with PyTorch by testing an LSTM on 24-hour ahead predictions, using a 24-hour window, inverse transforming results, plotting actual vs predicted, and computing mean absolute error.
Deep learning has become one of the most popular machine learning techniques in recent years, and PyTorch has emerged as a powerful and flexible tool for building deep learning models. In this course, you will learn the fundamentals of deep learning and how to implement neural networks using PyTorch.
Through a combination of lectures, hands-on coding sessions, and projects, you will gain a deep understanding of the theory behind deep learning techniques such as deep Artificial Neural Networks (ANNs), Convolutional Neural Networks (CNNs), Recurrent Neural Networks (RNNs). You will also learn how to train and evaluate these models using PyTorch, and how to optimize them using techniques such as stochastic gradient descent and backpropagation. During the course, I will also show you how you can use GPU instead of CPU and increase the performance of the deep learning calculation.
In this course, I will teach you everything you need to start deep learning with PyTorch such as:
NumPy Crash Course
Pandas Crash Course
Neural Network Theory and Intuition
How to Work with Torchvision datasets
Convolutional Neural Network (CNN)
Long-Short Term Memory (LSTM)
and much more
Since this course is designed for all levels (from beginner to advanced), we start with basic concepts and preliminary intuitions.
By the end of this course, you will have a strong foundation in deep learning with PyTorch and be able to apply these techniques to various real-world problems, such as image classification, time series analysis, and even creating your own deep learning applications.