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

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


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.

, , , ,

31 Responses to The 7 best deep learning books you should be reading right now

  1. Thanh March 5, 2018 at 10:25 am #

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

    • Adrian Rosebrock March 5, 2018 at 11:53 am #

      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.

  2. Aritra Chatterjee March 5, 2018 at 11:27 am #

    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.

    • Adrian Rosebrock March 5, 2018 at 11:54 am #

      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.

  3. Elie Kawerk March 5, 2018 at 12:39 pm #


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

  4. kiri March 5, 2018 at 1:23 pm #

    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?

    • Adrian Rosebrock March 5, 2018 at 1:38 pm #

      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.

  5. kokimoshida March 5, 2018 at 7:40 pm #

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

    • Adrian Rosebrock March 6, 2018 at 10:06 am #

      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?

  6. Bharat March 5, 2018 at 10:27 pm #

    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.

    • Adrian Rosebrock March 6, 2018 at 10:05 am #

      Thanks for sharing, Bharat!

  7. Victor March 8, 2018 at 10:14 am #

    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)?

    • Adrian Rosebrock March 8, 2018 at 1:41 pm #

      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.

  8. Miguel A. Moreno March 10, 2018 at 6:57 am #

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

    Thanks for all.

    • Adrian Rosebrock March 13, 2018 at 11:09 am #

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

  9. James Fisher March 18, 2018 at 11:01 pm #


    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.


    • Adrian Rosebrock March 19, 2018 at 4:58 pm #

      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!

      • Steve May 11, 2018 at 8:37 am #

        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.

        • Adrian Rosebrock May 11, 2018 at 10:30 am #

          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 vast majority 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 🙂

          • Steve May 12, 2018 at 3:10 am #

            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,

          • Adrian Rosebrock May 12, 2018 at 6:12 am #

            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.

  10. Sukant May 10, 2018 at 11:26 am #

    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…

    • Adrian Rosebrock May 11, 2018 at 10:32 am #

      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?

  11. Sukant May 14, 2018 at 3:09 am #

    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…

    • Adrian Rosebrock May 14, 2018 at 11:53 am #

      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.

  12. Santosh Shelar July 9, 2018 at 10:30 pm #

    Hi Adrian,
    Your post is very concise. I am looking for a book that helps me get more in-depth knowledge in Robotics with AI. Any help/pointers will be appreciated.

    • Adrian Rosebrock July 10, 2018 at 8:15 am #

      I do a lot of work with AI but not directly related to robotics. I don’t follow that area too closely. I don’t have any recommendations but I hope another reader can provide you with some pointers.

  13. Yassine August 5, 2018 at 1:39 am #

    Hello and thanks for your suggestions. Just a question about your book are you using keras In the implementation code ?

    • Adrian Rosebrock August 7, 2018 at 6:51 am #

      Inside the book I use Keras (with a TensorFlow backend) along with mxnet. If you have any other questions just let me know!

  14. Jobin October 26, 2018 at 1:59 am #

    Hi Adrian,

    I’ve started with the Starter Bundle and I’m loving it so far! I was wondering if you’re aware of an equivalent book for deep learning applied to text problems, that has the right balance of theory and code.


    • Adrian Rosebrock October 29, 2018 at 1:44 pm #

      Hey Jobin — I don’t follow text + deep learning too closely so I unfortunately wouldn’t know where to point you. Perhaps check with Jason over at

Before you leave a comment...

Hey, Adrian here, author of the PyImageSearch blog. I'd love to hear from you, but before you submit a comment, please follow these guidelines:

  1. If you have a question, read the comments first. You should also search this page (i.e., ctrl + f) for keywords related to your question. It's likely that I have already addressed your question in the comments.
  2. If you are copying and pasting code/terminal output, please don't. Reviewing another programmers’ code is a very time consuming and tedious task, and due to the volume of emails and contact requests I receive, I simply cannot do it.
  3. Be respectful of the space. I put a lot of my own personal time into creating these free weekly tutorials. On average, each tutorial takes me 15-20 hours to put together. I love offering these guides to you and I take pride in the content I create. Therefore, I will not approve comments that include large code blocks/terminal output as it destroys the formatting of the page. Kindly be respectful of this space.
  4. Be patient. I receive 200+ comments and emails per day. Due to spam, and my desire to personally answer as many questions as I can, I hand moderate all new comments (typically once per week). I try to answer as many questions as I can, but I'm only one person. Please don't be offended if I cannot get to your question
  5. Do you need priority support? Consider purchasing one of my books and courses. I place customer questions and emails in a separate, special priority queue and answer them first. If you are a customer of mine you will receive a guaranteed response from me. If there's any time left over, I focus on the community at large and attempt to answer as many of those questions as I possibly can.

Thank you for keeping these guidelines in mind before submitting your comment.

Leave a Reply