Deep Learning with Python
Deep Learning with Python, Second Edition
current reading: https://learning.oreilly.com/library/view/deep-learning-with/9781617296864/OEBPS/Text/02.htm#heading_id_5
Chapter 7 Working with Keras: A deep dive
Three APIs for building models in Keras:
- The Sequential model. It’s basically a Python list. It’s limited to simple stacks of layers. Layers only get built when they are called for the first time. See section 7.2.1 for an example.
- The Functional API. It focuses on graph-like model architectures. It allows models with multiple input and output, and as such, it’s the most commonly used model-building API. See section 7.2.2 for examples of building and training multi-input and multi-output models.
The functional model has explicit graph data structure. It enables model visualization and feature extraction, inspection and reuse of model nodes and layers.
- Model subclassing, a low-level option where you write everything yourself from scratch. See section 7.2.3 for some details.
In general, using Functional models that include subclassed layers provides the best of both worlds: high development flexibility while retaining the advantages of the Functional API.
We can customize the workflow by:
- Writing our own metrics (section 7.3.1)
- Using callbacks (section 7.3.2). Some examples of using callbacks include model checkpointing, early stopping, dynamically adjusting the value of certain parameters during training, logging training and validation metrics.
We can write our own training and evaluation loops. (section 7.4)
Chapter 8 Introduction to deep learning for computer vision
Intro to Convnets (section 8.1)
Training a Convnets from scratch on a small dataset (section 8.2)
Leveraging a pretrained model (section 8.3)
Chapter 9 Advanced deep learning for computer vision
9.1 Three essential computer vision tasks: Image classification, Image segmentation, Object detection.
9.2 An image segmentation example
9.3 Modern convnet architecture patterns
A good model architecture will accelerate learning and will enable your model to make efficient use of the training data available, reducing the need for large datasets. A good model architecture is one that reduces the size of the search space or otherwise makes it easier to converge to a good point of the search space.
Some essential convnet architecture best practices: residual connections, batch normalization, and separable convolutions. Once you master how to use them, you will be able to build highly effective image models.
9.4 Interpreting what convnets learn
Visualizing intermediate activations (section 9.4.1)