Deep Learning: Convolutional Neural Networks in Python
4.6 (385 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
5,971 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Deep Learning: Convolutional Neural Networks in Python to your Wishlist.

Add to Wishlist

Deep Learning: Convolutional Neural Networks in Python

Computer Vision and Data Science and Machine Learning combined! In Theano and TensorFlow
4.6 (385 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
5,971 students enrolled
Last updated 5/2017
Current price: $10 Original price: $120 Discount: 92% off
30-Day Money-Back Guarantee
  • 4 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand convolution
  • Understand how convolution can be applied to audio effects
  • Understand how convolution can be applied to image effects
  • Implement Gaussian blur and edge detection in code
  • Implement a simple echo effect in code
  • Understand how convolution helps image classification
  • Understand and explain the architecture of a convolutional neural network (CNN)
  • Implement a convolutional neural network in Theano
  • Implement a convolutional neural network in TensorFlow
View Curriculum
  • Install Python, Numpy, Scipy, Matplotlib, Scikit Learn, Theano, and TensorFlow
  • Learn about backpropagation from Deep Learning in Python part 1
  • Learn about Theano and TensorFlow implementations of Neural Networks from Deep Learning part 2

This is the 3rd part in my Data Science and Machine Learning series on Deep Learning in Python. At this point, you already know a lot about neural networks and deep learning, including not just the basics like backpropagation, but how to improve it using modern techniques like momentum and adaptive learning rates. You've already written deep neural networks in Theano and TensorFlow, and you know how to run code using the GPU.

This course is all about how to use deep learning for computer vision using convolutional neural networks. These are the state of the art when it comes to image classification and they beat vanilla deep networks at tasks like MNIST.

In this course we are going to up the ante and look at the StreetView House Number (SVHN) dataset - which uses larger color images at various angles - so things are going to get tougher both computationally and in terms of the difficulty of the classification task. But we will show that convolutional neural networks, or CNNs, are capable of handling the challenge!

Because convolution is such a central part of this type of neural network, we are going to go in-depth on this topic. It has more applications than you might imagine, such as modeling artificial organs like the pancreas and the heart. I'm going to show you how to build convolutional filters that can be applied to audio, like the echo effect, and I'm going to show you how to build filters for image effects, like the Gaussian blur and edge detection.

We will also do some biology and talk about how convolutional neural networks have been inspired by the animal visual cortex.

After describing the architecture of a convolutional neural network, we will jump straight into code, and I will show you how to extend the deep neural networks we built last time (in part 2) with just a few new functions to turn them into CNNs. We will then test their performance and show how convolutional neural networks written in both Theano and TensorFlow can outperform the accuracy of a plain neural network on the StreetView House Number dataset.

All the materials for this course are FREE. You can download and install Python, Numpy, Scipy, Theano, and TensorFlow with simple commands shown in previous courses.

This course focuses on "how to build and understand", not just "how to use". Anyone can learn to use an API in 15 minutes after reading some documentation. It's not about "remembering facts", it's about "seeing for yourself" via experimentation. It will teach you how to visualize what's happening in the model internally. If you want more than just a superficial look at machine learning models, this course is for you.


All the code for this course can be downloaded from my github: /lazyprogrammer/machine_learning_examples

In the directory: cnn_class

Make sure you always "git pull" so you have the latest version!


  • calculus
  • linear algebra
  • probability
  • Python coding: if/else, loops, lists, dicts, sets
  • Numpy coding: matrix and vector operations, loading a CSV file
  • Can write a feedforward neural network in Theano and TensorFlow

TIPS (for getting through the course):

  • Watch it at 2x.
  • Take handwritten notes. This will drastically increase your ability to retain the information.
  • Write down the equations. If you don't, I guarantee it will just look like gibberish.
  • Ask lots of questions on the discussion board. The more the better!
  • Realize that most exercises will take you days or weeks to complete.
  • Write code yourself, don't just sit there and look at my code.


  • (The Numpy Stack in Python)
  • Linear Regression in Python
  • Logistic Regression in Python
  • (Supervised Machine Learning in Python)
  • (Bayesian Machine Learning in Python: A/B Testing)
  • Deep Learning in Python
  • Practical Deep Learning in Theano and TensorFlow
  • (Supervised Machine Learning in Python 2: Ensemble Methods)
  • Convolutional Neural Networks in Python
  • (Easy NLP)
  • (Cluster Analysis and Unsupervised Machine Learning)
  • Unsupervised Deep Learning
  • (Hidden Markov Models)
  • Recurrent Neural Networks in Python
  • Artificial Intelligence: Reinforcement Learning in Python
  • Natural Language Processing with Deep Learning in Python

Who is the target audience?
  • Students and professional computer scientists
  • Software engineers
  • Data scientists who work on computer vision tasks
  • Those who want to apply deep learning to images
  • Those who want to expand their knowledge of deep learning past vanilla deep networks
  • People who don't know what backpropagation is or how it works should not take this course, but instead, take parts 1 and 2.
  • People who are not comfortable with Theano and TensorFlow basics should take part 2 before taking this course.
Curriculum For This Course
Expand All 30 Lectures Collapse All 30 Lectures 03:51:03
Outline and Review
5 Lectures 19:21

Review of Important Concepts

Where to get the code and data for this course

How to Succeed in this Course

How to load the SVHN data and benchmark a vanilla deep network
6 Lectures 36:35

Convolution example with audio: Echo

Convolution example with images: Gaussian Blur

Write Convolution Yourself

Alternative Views on Convolution
Convolutional Neural Network Description
5 Lectures 25:18
Translational Invariance

Architecture of a CNN

Relationship to Biology

Convolution and Pooling Gradients

LeNet - How the Shapes Go Together
Convolutional Neural Network in Theano
3 Lectures 25:20
Theano - Building the CNN components

Theano - Full CNN and Test on SVHN

Visualizing the Learned Filters
Convolutional Neural Network in TensorFlow
2 Lectures 14:20
TensorFlow - Building the CNN components

TensorFlow - Full CNN and Test on SVHN
Practical Tips
1 Lecture 03:07
Practical Image Processing Tips
Project: Facial Expression Recognition
5 Lectures 01:04:13
Facial Expression Recognition Problem Description

The class imbalance problem

Utilities walkthrough

Convolutional Net in Theano

Convolutional Net in TensorFlow
3 Lectures 42:49
How to install Numpy, Scipy, Matplotlib, Pandas, IPython, Theano, and TensorFlow

How to Code by Yourself (part 1)

How to Code by Yourself (part 2)
About the Instructor
Lazy Programmer Inc.
4.6 Average rating
8,744 Reviews
48,702 Students
18 Courses
Data scientist and big data engineer

I am a data scientist, big data engineer, and full stack software engineer.

For my masters thesis I worked on brain-computer interfaces using machine learning. These assist non-verbal and non-mobile persons communicate with their family and caregivers.

I have worked in online advertising and digital media as both a data scientist and big data engineer, and built various high-throughput web services around said data. I've created new big data pipelines using Hadoop/Pig/MapReduce. I've created machine learning models to predict click-through rate, news feed recommender systems using linear regression, Bayesian Bandits, and collaborative filtering and validated the results using A/B testing.

I have taught undergraduate and graduate students in data science, statistics, machine learning, algorithms, calculus, computer graphics, and physics for students attending universities such as Columbia University, NYU, Humber College, and The New School. 

Multiple businesses have benefitted from my web programming expertise. I do all the backend (server), frontend (HTML/JS/CSS), and operations/deployment work. Some of the technologies I've used are: Python, Ruby/Rails, PHP, Bootstrap, jQuery (Javascript), Backbone, and Angular. For storage/databases I've used MySQL, Postgres, Redis, MongoDB, and more.