
the course teaches effective dataset design through image collection, uses transfer learning to scale and evaluate deep learning projects, and covers deploying models to production for beginners.
Learn two core topics in deep learning: training and evaluating a neural network with an existing dataset, addressing overfitting and hyperparameters, and designing a dataset for convolutional neural network training.
Get an instructor-led overview of TensorFlow basics and datasets in deep learning practice, highlighting practical foundations and essential concepts for building models.
Explore the fundamentals of building a classification project with TensorFlow, compare CPU and GPU training time, and cover essential concepts through a simple card classification task.
Train a neural network to classify cat images, load the dataset from hard drives into an array, and evaluate model accuracy using a training and a testing dataset.
Import essential libraries and manage environments for TensorFlow 2.0, load images with Pillow, use NumPy arrays, and prepare datasets, layers, and models for neural network training.
Load the dataset and create one hot encoding to convert categorical labels into numerical vectors. Examine two classes, 'cut' and 'not cut,' and prepare for a softmax classifier.
Learn how os.walk() yields the root, subdirectories, and files in a training data directory, using a generator to build image lists from joined paths and file names.
Explore running data loading on Google Colab, mounting Google Drive, and the impact of disk access on loading times, with comparisons to local machines and tips for faster data loading.
Learn how convolutional neural networks efficiently extract features from images using filters and feature maps. Compare fully connected networks and overfitting risks, and explain how padding and strides shape sizes.
Train a convolutional neural network with a sequential model, using 3x3 convolutional feature extraction layers on grayscale input, flattening, dropout, and a two-class softmax classifier.
Create a CNN model and compile it by choosing the loss, optimizer, and accuracy metric; prefer categorical cross-entropy for two-class classification with sigmoid activation, using stochastic gradient descent.
Train the model using the training data and labels with a batch size of 64, and train for 10 epochs, optionally using validation data to monitor loss and accuracy.
Load data on Google Colab from Google Drive with authorization, and train on 400 images, noting slower data load but faster training on Colab's gpu.
Identify overfitting when a model excels on training data but struggles on test data, and propose remedies like data augmentation, larger datasets, learning-rate and optimizer tuning, and model size.
After training, save your model to a file path, then load it to make predictions on new images or evaluate on another dataset, and upload the training history.
Learn how to plot the training history with matplotlib, visualize loss and accuracy graphs, and compare train versus validation metrics to diagnose overfitting.
Experiment with tuning the SGD optimizer by defining an optimizer object with updated learning rate and momentum, re-compiling, training for more epochs, and observing improved validation accuracy and model saving.
Tune training by adjusting data size and parameters to manage overfitting, load more or fewer images, apply data augmentation and optimizers, and evaluate two models.
Compare training, validation, and test accuracy, and explain how optimization targets the training data to improve unseen data performance and avoid overfitting.
Explore when inference needs a gpu and when cpu suffices, load and test data in google colab, and understand train and test dataset structure for a small introductory example.
Load and evaluate a saved trained TensorFlow model using a test dataset, applying consistent preprocessing including one-hot encoding, and generate predictions.
Evaluate the model on the test dataset to measure accuracy, report a 63.49 percent result, and recognize overfitting while applying TensorFlow basics and datasets concepts.
Predict the image class by comparing predicted probabilities for cut versus not cut, using a simple if statement; evaluate with accuracy, reshape inputs, and explore misclassifications for future, broader evaluation.
Understand the entire loop of training a deep learning model and evaluating it, via a simple CPU-based project that includes reshaping and timing calculations.
Build a deep learning vehicle classification project for surveillance, starting with cars and motorcycles and expanding to bicycle, motorbike, suv, sedan, and bus, considering hierarchical parent-child relationships and classifier decisions.
Describes a hierarchical classifier setup with three classifiers: motorcycle vs. car, bicycle vs. motorbike, and bus vs. SUV, highlighting training benefits, memory and computation requirements, and cascading error risks.
Learn when to use a flat classifier for five vehicle types—motorbike, bicycle, bus, SUV, sedan—balancing dataset size, memory, and computation.
Explore how adding more classes or a deeper hierarchy increases complexity in real-world image classification, from bicycles to motorbikes and vehicles, and drives up data, computing, and storage needs.
Discover an efficient method to build one reusable dataset suitable for both flat and hierarchical classifiers, using a hierarchical folder structure and flexible labeling.
Apply a hierarchical folder and label naming convention that encodes parent and grandparent classes, such as car/bus and motorcycle motorbike scooter, to organize datasets for training and prediction.
Create a hierarchical dataset structure with two top classes, car and motorcycle, and organize subclasses such as suv, sedan, bus, bicycle, and motorbike, with folder names reflecting the parent classes.
Collect and curate a diverse image dataset by downloading bus and car images, cropping to single vehicles, removing background noise, and ensuring varying sizes, resolutions, and backgrounds for multi-class training.
Build a diverse image dataset with varied backgrounds that reflect deployment, not just white backgrounds, and annotate bicycles with bounding boxes to improve generalization.
Use a reusable notebook structure for classification projects, covering data cleaning, renaming images, removing duplicates, and packing images into an H5 dataset for fast loading on Colab.
Rename all dataset images using a class-based naming convention with a Python script to automate path handling and batch processing, preparing a clean, labeled dataset for deep learning.
Unify the dataset image hierarchy by aligning levels across folders and automatically renaming images to match the new structure for consistent labeling.
Use a python rename method that traverses each parent folder, names images after the folder with a counter and .jpeg extension, and run it only once before removing duplicates.
Transform folders of images into a single hdf5 dataset file containing images, labels, and metadata, then split into train, validation, and test sets for fair model comparisons.
Convert the dataset into a single hdf5 file and split it into 80/10/10 or 90/5/5 train/validation/test sets using reusable notebooks, with progress monitoring and data statistics.
Set the dataset image size as a key hyperparameter, using 224 as a common default; larger sizes increase memory and slow execution, smaller sizes speed up but reduce features.
Set the dataset path accurately and create the target hdf5 dataset file with size-encoded naming for version control. Generate a csv with image metadata to visualize distribution.
Load the utilities library, explore its methods, and update the library path to ensure it loads correctly for practice.
Learn how to load RGB data with a library, resize images, assign labels, and prepare one-hot and binary labels for classification datasets, including per-class limits and data shuffling.
Set the directory_depth parameter to zero to build a flat classifier; with directory depth zero, the labels load as the names of the subclass folders, yielding seven unique labels.
Set the directory_depth to two to build a two-level hierarchical classifier, mapping labels to grandparent categories such as car and motorcycle, demonstrated with dataset labeling by directory structure.
Master one-hot encoding with LabelBinarizer from preprocessing, converting class labels into binary vectors. The lecture shows mapping each class to a unique one-hot vector and an optional integer label.
Learn to save images, labels, and one-hot encoded binary labels into a single HDF5 file using h5py, including dataset creation, writing shapes, normalization, and preparing for a training/validation split.
Analyze the data distribution by loading the dataset, computing class counts for seven classes and the average image sizes, and using distribution plots to ensure a balanced, robust training set.
Analyze the partitioned dataset: 754 images total, with about 603 for training and 151 for testing, the latter split roughly 75 and 76 images.
Visualize the partitioned dataset before training to verify data loading, labels, and splits, loading training, validation, and test sets, and displaying sample images with labels.
Showcases training a vehicle-type classifier in Google Colab using a prepared dataset and compares loading data from images with hdf5 data for faster training.
Visualize sample images after loading data to inspect labels and image quality, fix label truncation by adjusting max label length, and prepare data before building the network.
You want to start developing deep learning solutions, but you do not want to lose time in mathematics and theory?
You want to conduct deep learning projects, but do not like the hassle of tedious programming tasks?
Do you want an automated process for developing deep learning solutions?
This course is then designed for you! Welcome to Deep Learning in Practice, with NO PAIN!
This course is the first course on a series of Deep Learning in Practice Courses of Anis Koubaa, namely
Deep Learning in Practice I: Tensorflow 2 Basics and Dataset Design (this course): the student will learn the basics of conducting a classification project using deep neural networks, then he learns about how to design a dataset for industrial-level professional deep learning projects.
Deep Learning in Practice II: Transfer Learning and Models Evaluation: the student will learn how to manage complex deep learning projects and develop models using transfer learning using several state-of-the-art CNN algorithms. He will learn how to develop reusable projects and how to compare the results of different deep learning models in an automated manner.
Deep Learning in Practice III: Face Recognition. The student will learn how to build a face recognition app in Tensorflow and Keras.
Deep Learning in Practice I: Basics and Dataset Design
There are plenty of courses and tutorials on deep learning. However, some practical skills are challenging to find in this massive bunch of deep learning resources, and that someone would spend a lot of time to get these practical skills.
This course fills this gap and provides a series of practical lectures with hands-on projects through which I introduce the best practices that deep learning practitioners have to know to conduct deep learning projects.
I have seen several people developing deep learning projects, but they fail to make their projects organized and reusable for other projects. This would lead to losing huge time when switching from one project to the others. In this course, I present several tips to efficiently structure deep learning projects that make you generate results in one simple click, instead of losing time into manual processing data collected from deep learning models.
The hands-on projects explain in detail the whole loop of deep learning projects starting from data collection, to data loading, pre-processing, training, and evaluation.
By the end of the course, you will be able to design deep learning projects in very little time with a comprehensive set of results and visualizations.