Book Image

Hands-On Convolutional Neural Networks with TensorFlow

By : Iffat Zafar, Giounona Tzanidou, Richard Burton, Nimesh Patel, Leonardo Araujo
Book Image

Hands-On Convolutional Neural Networks with TensorFlow

By: Iffat Zafar, Giounona Tzanidou, Richard Burton, Nimesh Patel, Leonardo Araujo

Overview of this book

Convolutional Neural Networks (CNN) are one of the most popular architectures used in computer vision apps. This book is an introduction to CNNs through solving real-world problems in deep learning while teaching you their implementation in popular Python library - TensorFlow. By the end of the book, you will be training CNNs in no time! We start with an overview of popular machine learning and deep learning models, and then get you set up with a TensorFlow development environment. This environment is the basis for implementing and training deep learning models in later chapters. Then, you will use Convolutional Neural Networks to work on problems such as image classification, object detection, and semantic segmentation. After that, you will use transfer learning to see how these models can solve other deep learning problems. You will also get a taste of implementing generative models such as autoencoders and generative adversarial networks. Later on, you will see useful tips on machine learning best practices and troubleshooting. Finally, you will learn how to apply your models on large datasets of millions of images.
Table of Contents (17 chapters)
Title Page
Copyright and Credits
Packt Upsell

Data Preparation

The backbone of all Machine Learning algorithms is the data. Everything a machine learning algorithm learns is from the data. Therefore it is critical to provide the correct data to the algorithm which is representative of the problem statement. As seen already, deep learning in particular requires large amounts of data for training models. We can sometimes say that a certain amount of data is enough for a problem, however there is never enough! More is better. The complexity of the model that is able to be trained correctly is directly proportional to the amount of data on which it is trained. Limited data will put an upper limit on the choice of model architecture for the problem. When considering the amount of data available, it is also worth noting that a portion of this will also need to be used for validation and testing purposes.

The following section will now discuss the data partitioning and its importance on the progress of any machine learning task.

Split of Train...