O'Reilly logo
live online training icon Live Online training

Debugging and Optimizing Convolutional Neural Networks with Keras

enter image description here

Improving CNN performance with data augmentation, transfer learning and other techniques

Lukas Biewald

Many people have trained a neural network and stopped there. We are going to go a few steps further, building a more complicated CNN and augmenting it in several ways. Along the way we will run into common issues and bugs that are often glossed over in other courses and discuss approaches to troubleshooting.

What you'll learn-and how you can apply it

By the end of this live, hands-on, online course, you’ll understand:

  • How to build, modify and debug Convolutional Neural Networks to classify images in different domains
  • How to use Keras effectively to train and troubleshoot models
  • Inception, ResNet and how popular CNN architectures differ from each other

And you’ll be able to:

  • Take a new dataset specific to your application and train a model for it
  • Take existing keras training code and understand it

This training course is for you because...

  • You’re an engineer that wants to improve your deep learning skills.
  • Maybe you’ve played around with Keras and done a tutorial or an online course, but you want to get more practical and hands-on. This is the place where a lot of people get stuck. This course will give you the practical skills you need to work on models in the real world.
  • You can’t become an expert in a day, but you'll leave this course able to build and deploy useful real-world convolutional neural networks.


  • Fluent in Python

Recommended preparation:

Recommended follow-up:

About your instructor

  • Lukas Biewald is currently CEO & founder of Weights & Biases, his second major contribution to advances in the machine learning field. In 2009, Lukas founded Figure Eight, formally CrowdFlower. Figure Eight was acquired by Appen in 2019. Lukas has dedicated his career to optimize ML workflows and teach ML practitioners, making machine learning more accessible to all.


The timeframes are only estimates and may vary according to how the class is progressing

Building a CNN in Keras (55 minutes)

  • Presentation: Build up a CNN from scratch. We go through a network one layer at a time and build a classifier on the cifar data set.
  • Exercise: Modify the network to make it more performant.
  • Q&A
  • Break (5 minutes)

Data Augmentation (55 minutes)

  • Presentation: We modify our CNN to use a data generator and then apply data augmentation techniques to improve it.
  • Exercise: Improve our classifier further.
  • Q&A
  • Break (5 minutes)

Transfer Learning (55 minutes)

  • Presentation: We take standard models trained on imagenet, inspect them and then repurpose them.
  • Exercise: Apply our classifier to a new dataset.
  • Q&A