Deep Learning with Microsoft Cognitive Toolkit Quick Start Guide

Book description

Learn how to train popular deep learning architectures such as autoencoders, convolutional and recurrent neural networks while discovering how you can use deep learning models in your software applications with Microsoft Cognitive Toolkit

Key Features

  • Understand the fundamentals of Microsoft Cognitive Toolkit and set up the development environment
  • Train different types of neural networks using Cognitive Toolkit and deploy it to production
  • Evaluate the performance of your models and improve your deep learning skills

Book Description

Cognitive Toolkit is a very popular and recently open sourced deep learning toolkit by Microsoft. Cognitive Toolkit is used to train fast and effective deep learning models. This book will be a quick introduction to using Cognitive Toolkit and will teach you how to train and validate different types of neural networks, such as convolutional and recurrent neural networks.

This book will help you understand the basics of deep learning. You will learn how to use Microsoft Cognitive Toolkit to build deep learning models and discover what makes this framework unique so that you know when to use it. This book will be a quick, no-nonsense introduction to the library and will teach you how to train different types of neural networks, such as convolutional neural networks, recurrent neural networks, autoencoders, and more, using Cognitive Toolkit. Then we will look at two scenarios in which deep learning can be used to enhance human capabilities. The book will also demonstrate how to evaluate your models' performance to ensure it trains and runs smoothly and gives you the most accurate results. Finally, you will get a short overview of how Cognitive Toolkit fits in to a DevOps environment

What you will learn

  • Set up your deep learning environment for the Cognitive Toolkit on Windows and Linux
  • Pre-process and feed your data into neural networks
  • Use neural networks to make effcient predictions and recommendations
  • Train and deploy effcient neural networks such as CNN and RNN
  • Detect problems in your neural network using TensorBoard
  • Integrate Cognitive Toolkit with Azure ML Services for effective deep learning

Who this book is for

Data Scientists, Machine learning developers, AI developers who wish to train and deploy effective deep learning models using Microsoft CNTK will find this book to be useful. Readers need to have experience in Python or similar object-oriented language like C# or Java.

Table of contents

  1. Title Page
  2. Copyright and Credits
    1. Deep Learning with Microsoft Cognitive Toolkit Quick Start Guide
  3. Dedication
  4. About Packt
    1. Why subscribe?
  5. Contributors
    1. About the author
    2. About the reviewer
    3. Packt is searching for authors like you
  6. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
      1. Download the example code files
      2. Code in Action
      3. Conventions used
    4. Get in touch
      1. Reviews
  7. Getting Started with CNTK
    1. The relationship between AI, machine learning, and deep learning
      1. Limitations of machine learning
    2. How does deep learning work?
      1. The neural network architecture
        1. Artificial neurons
      2. Predicting output with a neural network
      3. Optimizing a neural network
    3. What is CNTK?
      1. Features of CNTK
        1. A high-speed low-level API
        2. Basic building blocks for quickly creating neural networks
        3. Measuring model performance
        4. Loading and processing large datasets
        5. Using models from C# and Java
    4. Installing CNTK
      1. Installing on Windows
        1. Installing Anaconda
        2. Upgrading pip
        3. Installing CNTK
      2. Installing on Linux
        1. Installing Anaconda
        2. Upgrading pip to the latest version
        3. Installing the CNTK package
      3. Using your GPU with CNTK
        1. Enabling GPU usage on Windows
        2. Enabling GPU usage on Linux
    5. Summary
  8. Building Neural Networks with CNTK
    1. Technical requirements
    2. Basic neural network concepts in CNTK
      1. Building neural networks using layer functions
      2. Customizing layer settings
      3. Using learners and trainers to optimize the parameters in a neural network
      4. Loss functions
      5. Model metrics
    3. Building your first neural network
      1. Building the network structure
      2. Choosing an activation function
        1. Choosing an activation function for the output layer
        2. Choosing an activation function for the hidden layers
      3. Picking a loss function
      4. Recording metrics
    4. Training the neural network
      1. Choosing a learner and setting up training
      2. Feeding data into the trainer to optimize the neural network
      3. Checking the performance of the neural network
    5. Making predictions with a neural network
    6. Improving the model
    7. Summary
  9. Getting Data into Your Neural Network
    1. Technical requirements
    2. Training a neural network efficiently with minibatches
    3. Working with small in-memory datasets
      1. Working with numpy arrays
      2. Working with pandas DataFrames
    4. Working with large datasets
      1. Creating a MinibatchSource instance
      2. Creating CTF files
      3. Feeding data into a training session
    5. Taking control over the minibatch loop
    6. Summary
  10. Validating Model Performance
    1. Technical requirements
    2. Choosing a good strategy to validate model performance
      1. Using a hold-out dataset for validation
      2. Using k-fold cross-validation
      3. What about underfitting and overfitting?
    3. Validating performance of a classification model
      1. Using a confusion matrix to validate your classification model
      2. Using the F-measure as an alternative to the confusion matrix
      3. Measuring classification performance in CNTK
    4. Validating performance of a regression model
      1. Measuring the accuracy of your predictions
      2. Measuring regression model performance in CNTK
    5. Measuring performance for out-of-memory datasets
      1. Measuring performance when working with minibatch sources
      2. Measuring performance when working with a manual minibatch loop
    6. Monitoring your model
      1. Using callbacks during training and validation
      2. Using ProgressPrinter
      3. Using TensorBoard
    7. Summary
  11. Working with Images
    1. Technical requirements
    2. Convolutional neural network architecture
      1. Network architecture used for image classification
      2. Working with convolution layers
      3. Working with pooling layers
      4. Other uses for convolutional networks
    3. Building convolutional networks
      1. Building the network structure
      2. Training the network with images
      3. Picking the right combination of layers
    4. Improving model performance with data augmentation
    5. Summary
  12. Working with Time Series Data
    1. Technical requirements
    2. What are recurrent neural networks?
    3. Recurrent neural networks variations
      1. Predicting a single output based on a sequence
      2. Predicting a sequence based on a single sample
      3. Predicting sequences based on sequences
      4. Stacking multiple recurrent layers
    4. How do recurrent neural networks work?
      1. Making predictions with a recurrent neural network
      2. Training a recurrent neural network
      3. Using other recurrent layer types
        1. Working with gated recurrent units
        2. Working with long short-term memory units
        3. When to use other recurrent layer types
    5. Building recurrent neural networks with CNTK
      1. Building the neural network structure
      2. Stacking multiple recurrent layers
      3. Training the neural network with time series data
      4. Predicting output
    6. Summary
  13. Deploying Models to Production
    1. Technical requirements
    2. Using machine learning in a DevOps environment
      1. Keeping track of your data
      2. Training models in a continuous integration pipeline
      3. Deploying models to production
      4. Gathering feedback on your models
    3. Storing your models
      1. Storing model checkpoints to continue training at a later point
      2. Storing portable models for use in other applications
        1. Storing a model in ONNX format
        2. Using ONNX models in C#
    4. Using Azure Machine Learning service to manage models
      1. Deploying Azure Machine Learning service
      2. Exploring the machine learning workspace
      3. Running your first experiment
      4. Deploying your model to production
    5. Summary
  14. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think

Product information

  • Title: Deep Learning with Microsoft Cognitive Toolkit Quick Start Guide
  • Author(s): Willem Meints
  • Release date: March 2019
  • Publisher(s): Packt Publishing
  • ISBN: 9781789802993