In today’s post I’m going to share with you the 7 best deep learning books (in no particular order) I have come across and would personally recommend you read.

Some of these deep learning books are *heavily theoretical*, focusing on the mathematics and associated assumptions behind neural networks and deep learning.

Other deep learning books are *entirely practical* and teach through *code *rather than *theory*.

And even other deep learning books straddle the line, giving you a healthy dose of theory while enabling you to “get your hands dirty” and learn by implementing (these tend to be my favorite deep learning books).

For each deep learning book I’ll discuss the core concepts covered, the target audience, and if the book is appropriate for you.

**To discover the 7 best books for studying deep learning, just keep reading!**

## The 7 best deep learning books you should be reading right now

Before you choose a deep learning book, it’s best to assess your own personal learning style to ensure you get the most out of the book.

Start by asking yourself the following question:

How do I best learn? Do I like to learn from theoretical texts? Or do I like to learn from code snippets and implementation?

Everyone has their own personal learning style and your answers here will dictate which deep learning books you should be reading.

For me personally, I like to strike a balance between the two.

Deep learning books that are entirely theoretical and go too far into the abstract make it far too easy for my eyes to gloss over.

But on the other hand, if a deep learning book skips theory entirely and jumps straight into implementation, I know I’m missing out on core theoretical underpinnings that may help me approach a new deep learning problem or project.

In my opinion, a good deep learning book needs to carefully balance the two.

We need theory to help us understand the core fundamentals of deep learning — and at the same time we need implementation and code snippets to help us reinforce what we just learned.

### 1. Deep Learning

It’s hard (if not impossible) to write a blog post regarding the best deep learning books without mentioning Goodfellow, Bengio, and Courville’s *Deep Learning* text.

This book is meant to be a textbook used to teach the fundamentals and theory surrounding deep learning in a college-level classroom.

Goodfellow et al.’s *Deep Learning* is **entirely theoretical** and written for an academic audience. There is no code covered in the book.

The book starts with a discussion on machine learning basics, including the applied mathematics needed to effectively study deep learning (linear algebra, probability and information theory, etc.) from an academic perspective.

From there, the book moves into modern deep learning algorithms and techniques.

The final part of *Deep Learning* focuses more on current research trends and where the deep learning field is moving.

I’ve personally read through this book twice, cover to cover, and have found it incredibly valuable, provided you have the mathematical/academic rigor required for such a textbook.

*Deep Learning* is available for online viewing for free from the book’s homepage. You can purchase a hardcopy of the text from Amazon.

**You should read this deep learning book if…**

- You learn from
*theory*rather than*implementation* - You enjoy academic writing
- You are a professor, undergraduate, or graduate student doing work in deep learning

### 2. Neural Networks and Deep Learning

My second theory-based deep learning (e)book recommendation is *Neural Networks and Deep Learning* by Michael Nielsen.

The book does include some code but it’s important to underline the *“some”* — there are a total of seven Python scripts accompanying the book, all discussing a various fundamental machine learning, neural network, or deep learning technique on the MNIST dataset. The implementations are not the most “exciting” in the world, but they will help demonstrate some of the theoretical concepts in the text.

If you are new to machine learning and deep learning but are eager to dive into a *theory-based* learning approach, Nielsen’s book should be your first stop.

The book is a much quicker read than Goodfellow’s *Deep Learning* and Nielsen’s writing style combined with occasional code snippets makes it easier to work through.

**You should read this deep learning book if…**

- You are looking for a theory-based deep learning text
- Are new to machine learning/deep learning and want to approach the field from a more academic standpoint

### 3. Deep Learning with Python

Francois Chollet, Google AI researcher and creator of the popular Keras deep learning library, published his book, *Deep Learning with Python* in October 2017.

Francois’ book takes a practitioner’s approach to deep learning. Some theory and discussion is included, but for every few paragraphs of theory, you’ll find a Keras implementation of the technique.

One of my favorite aspects of this book is how Francois includes examples for deep learning applied to computer vision, text, and sequences, making it a well rounded book for readers who want to learn the Keras library while studying machine learning and deep learning fundamentals.

I found Francois’ writing to be clear and accessible. His additional commentary on deep learning trends and history is phenomenal and insightful.

It’s important to note that this book is not meant to be a super deep dive into deep learning. Instead, it’s primary use is to teach you (1) the fundamentals of deep learning (2) through the Keras library (3) using practical examples in a variety of deep learning domains.

**You should read this deep learning book if…**

- You are interested in the Keras library
- You “learn by doing/implementing”
- You want a quick understanding of how deep learning is applied to various fields, such as computer vision, sequence learning, and text

### 4. Hands-On Machine Learning with Scikit-Learn and TensorFlow

When I first purchased a copy of Aurélien Géron’s *Hands-on Machine Learning with Scikit-Learn and TensorFlow*, I wasn’t sure what to expect — had the title not included the word “TensorFlow” I may have breezed right by it, thinking it was only a basic introduction to machine learning.

But at the same time, appending the word “TensorFlow” to an already lengthy title that seems to focus on basic machine learning made me think it was a cheap marketing tactic to sell more copies — everyone is interested in deep learning, right?

Luckily, I was wrong — the book is a good read and the title shouldn’t deter you from reading through it.

Géron’s deep learning book is organized in two parts.

The first part covers basic machine learning algorithms such as Support Vector Machines (SVMs), Decision, Trees, Random Forests, ensemble methods, and basic unsupervised learning algorithms. Scikit-learn examples for each of the algorithms are included.

The second part then covers elementary deep learning concepts through the TensorFlow library.

**You should read this deep learning book if…**

- You are new to machine learning and want to start with core principles with code examples
- You are interested in the popular scikit-learn machine learning library
- You want to quickly learn how to operate the TensorFlow library for basic deep learning tasks

### 5. TensorFlow Deep Learning Cookbook

If you like the “cookbook” style of teaching (little-to-no theory and lots of code), I would suggest taking a look at Gulli and Kapoor’s *TensorFlow Deep Learning Cookbook*.

This deep learning book is *entirely* hands-on and is a great reference for TensorFlow users.

Again, this book is not meant to necessarily *teach* deep learning, but instead show you how to operate the TensorFlow library in the *context* of deep learning.

Don’t get me wrong — you will *absolutely* learn new deep learning concepts, techniques, and algorithms along the way, but the book takes a heavy-handed cookbook approach: lots of code and explanations of what the code is doing.

My only criticism of the book is that there are some typos in the code snippets. This can be expected when writing a book that is entirely code focused. Typos happen, I can certainly attest to that. Just be aware of this when you are working through the text.

**You should read this deep learning book if…**

- You have already studied the fundamentals of deep learning
- You are interested in the TensorFlow library
- You enjoy the “cookbook” style of teaching where code is provided to solve a particular problem but the underlying theory is not discussed

### 6. Deep Learning: A Practitioners Approach

While most deep learning books that include code samples use Python, Adam Gibson and Josh Patterson’s *Deep Learning: A Practitioners Approach* instead use Java and the DL4J library.

Why Java?

Java is the most used programming language in large corporations, *especially* at the enterprise level.

The first few chapters in Gibson and Patterson’s book discuss basic machine learning and deep learning fundamentals. The rest of the book includes Java-based deep learning code examples using DL4J.

**You should read this deep learning book if…**

- You have a specific use case where the Java programming language needs to be utilized
- You work for a large company or enterprise organization where Java is primarily used
- You want to understand how to operate the DL4J library

### 7. Deep Learning for Computer Vision with Python

I’ll be completely honest and forthcoming and admit that I’m biased — I wrote *Deep Learning for Computer Vision with Python*.

That said, my book really has become one of the best deep learning and computer vision resources available today (take a look at this review and this one as well if you need an honest second opinion).

Francois Chollet, AI researcher at Google and creator of Keras, had this to say about my new deep learning book:

This book is a great, in-depth dive into practical deep learning for computer vision. I found it to be an approachable and enjoyable read: explanations are clear and highly detailed. You’ll find many practical tips and recommendations that are rarely included in other books or in university courses.

I highly recommend it, both to practitioners and beginners.— Francois Chollet

And Adam Geitgey, the author of the popular *Machine Learning is Fun!* blog series, said this:

I highly recommend grabbing a copy of

Deep Learning for Computer Vision with Python. It goes into a lot of detail and has tons of detailed examples. It’s the only book I’ve seen so far that covers both how things work and how to actually use them in the real world to solve difficult problems. Check it out! — Adam Geitgey

If you’re interested in studying deep learning applied to computer vision (image classification, object detection, image understanding, etc.), *this is the perfect book for you.*

Inside my book you will:

- Learn the
**foundations of machine learning and deep learning**in an accessible manner that balances both theory and implementation - Study
**advanced deep learning techniques**, including object detection, multi-GPU training, transfer learning, and Generative Adversarial Networks (GANs) **Replicate the results of state-of-the-art papers**, including ResNet, SqueezeNet, VGGNet, and others on the 1.2 million ImageNet dataset

Furthermore, I provide the best possible balance of both *theory* and *hands-on implementation*. For each theoretical deep learning concept you’ll find an associated Python implementation to help you cement the knowledge.

**Be sure to take a look** — and while you’re checking out the book, don’t forget to grab your (free) table of contents + sample chapters PDF of the book.

**You should read this deep learning book if…**

- You are specifically interested in deep learning applied to computer vision and image understanding
- You want an excellent balance between theory and implementation
- You want a deep learning book that makes seemingly complicated algorithms and techniques easy to grasp and understand
- You want a clear, easy to follow book to guide you on your path to deep learning mastery

## Summary

In this post you discovered my seven favorite books for studying deep learning.

Have you purchased or read through one of these books? If so, leave a comment and let me know what you think of it.

Did I miss a book that you think should be on this list? If so, be sure to contact me or leave a comment.

How about “Python Machine Learning: Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow” book Adrian?

I love Sebastian Raschka’s work. I have read the first edition from 2015 but I have not read the second edition released in September 2017. The first edition had a chapter on NN and CNN basics. I just looked at the second edition and it appears there are many more chapters on deep learning now. I’ll have to give it a read. Thank you for the suggestion.

Amazing list. I liked the fourth one and will get that soon. Thank you for such post. At times its overwhelming by looking at too many books.

There are a HUGE number of books with the number growing every day. I’m glad you enjoyed the post Aritra, I wish you the best of luck on your deep learning studies.

Adrian,

I’d also add Deep Learning with Python by Jason Brownlee (Machine Learning Mastery).

I’m curious, Do you have this same list but for computer vision books . I know you have a book for Computer Vision with Opencv and the Gurus course. Also I know of the Coding Matrix book by Philip Klein, but aside from those do you recommend another book?

I really like Coding the Matrix. I learned more from that book than I did in my college-level Linear Algebra course. I do not have the same type of list for strictly computer vision books. I’ll try to do one in the future. Thank you for the suggestion.

heyy… is there any book about the basics of neural networks and machine learning which combined between theory and implementation

My book, Deep Learning for Computer Vision with Python starts with a detailed discussion of both machine learning + neural networks in terms of both theory and implementation. The first half of the Starter Bundle (~150 pages) is dedicated to the fundamentals of machine learning + neural networks together. I would suggest giving it a look.

Otherwise, is there a particular language you were looking for in terms of your implementation?

Thank you very much for this list. It was very helpful. I

I have a suggestion. I have been reading the book “Fundamentals of Deep Learning” by Nikhil Buduma. I really liked it because of its balanced dealing with theory and tensor flow implementation.

Thanks for sharing, Bharat!

Hi Adrian, thanks so much for this…I found Aurélien Géron’s book to be really cool and he constantly updates his github repo and after going through the first half of Deep learning with python Francois Chollet after your post, I wish I knew about the book earlier….Thanks for the great stuffs you’re doing!

Also, do you have any resources I could go through for detecting dogs with just feature extraction and machine learning algorithms (no deep learning)?

Hey Victor, thanks for the comment. I cover how to train your own custom HOG + Linear SVM object on your own custom datasets inside the PyImageSearch Gurus course. I would start there. I hope that helps and points you in the right direction.

Hello Adrian.

Do you hace you book Deep Learning for Computer Visión with Python, un spanish version ???

Thanks for all.

Great question, Miguel. Currently I only have Deep Learning for Computer Vision with Python in English. I do not have a Spanish version.

Adrian,

I have gone over many of your blog posts, you know what you are doing, the stuff you put out is awesome. Never met you, but I think very highly of your knowledge in this space. Deep Learning for Computer Vision with Python vs the other options is WAY overpriced for me. I would probably have trouble getting my business to expense the charge.

Cheers,

James

Hey James — thank you for the kind words, I appreciate it. You are also totally correct, Deep Learning for Computer Vision with Python (DL4CV) is significantly more expensive than the other books. But DL4CV, in my opinion, and in the opinion of other PyImageSearch readers as well, provides far more value than what is charged. So yes, it is expensive — but you also get a lot more in return on your investment of time and finances. If there is anything I can do to help with your business expensing the charge, please let me know. Have a great day!

Hi Adrian,

following on this: Do you ever plan to release the hard copy of your DL4CV books alone, without the code / videos / VM etc.?

I think many people would really appreciate if a cheaper version were available. I don’t want to be disrespectful, but Chollet’s book (with code examples) is 15 times cheaper, sadly there is no way right now I could afford your books.

Thanks a lot for the effort and the blog, they are awesome.

Best,

Steve

Hey Steve, thanks for the comment, I appreciate it.

The hardcopy edition of DL4CV is only included in the ImageNet Bundle. As a self-published author, it’s not cheap to have copies of the books printed — I also manually fulfill all orders myself. In order to make the hardcopies feasible, I need to provide a ton of added value through the virtual machine and video tutorials. Yes, that does make the book more expensive but at the same time it also gives you a complete deep learning + computer vision self-study program that is also 3x longer, more in-depth, and is specifically targeted to understanding the intersection of computer vision and deep learning.

Secondly, I put a ton of my time into helping readers (regardless of whether they are customers or not), answering emails, answering blog post comments, etc. I make myself more available than the

vastmajority of other book/course authors. It’s not just the book you are paying for, it’s the time I dedicate to you personally to help you with your own personal questions/projects as well. I would like to keep PyImageSearch that way and if I charged less I wouldn’t be able to have these wonderful relationships with you and the rest of the community (there simply wouldn’t be enough of my time to go around for me to interact with you and others in this way). I offer over 250+ free posts here on PyImageSearch and I hope any and all learn from them. But premium content and premium support is something I do charge for. I hope that makes sense.Finally, I’ll wrap up by saying that you could always start with a lower tier, eBook edition and upgrade over time if you so wanted to. That’s no problem at all.

Let me know if you have any other questions and I hope you continue to enjoy the PyImageSearch blog 🙂

It totally makes sense and I understand it 🙂

And in case it’s not clear, I _really_ am grateful for the amazing job you are doing with your website.

I guess I am just a bit sour, because I cannot afford your book ^_^ I tried many times reading books on pdf or Kindle, but it doesn’t work for me. I guess I am too old school.

Best regards,

Steve

Thanks Steve, I’m so happy to hear you are enjoying the PyImageSearch blog 🙂 I also totally understand what you’re saying — text at times is much easier to digest content than digital.

Hello Adrain, This was a very useful read for me. I am really interested in knowing more on Deep Learning and Machine Learning …. Am a Network Engineer by profession but I need to go beyond what am currently doing. Will need you guidance here for sure…

Hey Sukant — I mainly focus on the intersection of deep learning and computer vision. Is there any particular area of deep learning you were interested in studying? Were you interested in computer vision as well?

Hey Adrian , thanks for the response . Yes am interested in computer vision and Automatic Speech Recognition…i also want to learn in depth on the neural networks and how they actually function right from the basics…..Am a 38 year old now and i just think that am too old to grill through every thing of the level of my interest and then persue it as a career. Would really need your advise on this …how i make a start. ….i really hope its not too late for me…

You are certainly not too old to start studying deep learning. I know readers here on PyImageSearch who are in their 40’s and 50’s who are just now getting started with neural networks. As long as you have the drive to study and put in the effort, I think you will be successful. I personally don’t have much experience in automatic speech recognition so I’m a bit reluctant to provide any suggestions there, but as far as deep learning + computer vision goes, the PyImageSearch blog is absolutely the right place to be.

To get started, I would suggest working through Deep Learning for Computer Vision with Python. The book does not make any assumptions on your prior experience with computer vision or deep learning. It can absolutely be used to help you get up to speed. Give it a look, I’m confident it will help you.