chapter seven

7 A deep dive into Keras

 

This chapter covers

  • Ways to create Keras models: the Sequential class, the Functional API, and model subclassing
  • Using the built-in Keras training and evaluation loops, including custom metrics and custom losses
  • Using Keras callbacks to customize how training proceeds
  • Using TensorBoard to monitor training and evaluation metrics over time
  • Writing training and evaluation loops from scratch

You’re starting to have some experience with Keras. You’re familiar with the Sequential model, Dense layers, and built-in APIs for training, evaluation, and inference: compile(), fit(), evaluate(), and predict(). You even learned in chapter 3 how to inherit from the Layer class to create custom layers and how to use the gradient APIs in TensorFlow, JAX, and PyTorch to implement a step-by-step training loop.

In the coming chapters, we’ll dig into computer vision, timeseries forecasting, natural language processing, and generative deep learning. These complex applications will require much more than a Sequential architecture and the default fit() loop. So let’s first turn you into a Keras expert! In this chapter, you’ll get a complete overview of the key ways to work with Keras APIs: everything you’re going to need to handle the advanced deep learning use cases you’ll encounter next.

7.1 A spectrum of workflows

7.2 Different ways to build Keras models

7.2.1 The Sequential model

7.2.2 The Functional API

7.2.3 Subclassing the Model class

7.2.4 Mixing and matching different components

7.2.5 Remember: Use the right tool for the job

7.3 Using built-in training and evaluation loops

7.3.1 Writing our own metrics

7.3.2 Using callbacks

7.3.3 The EarlyStopping and ModelCheckpoint callbacks

7.3.4 Writing our own callbacks

7.3.5 Monitoring and visualization with TensorBoard

7.4 Writing training and evaluation loops

7.4.1 Training vs. inference

7.4.2 Writing custom training step functions

7.4.3 Low-level usage of metrics