Jump to ratings and reviews
Rate this book

Deep Learning with Python

Rate this book
Deep learning is applicable to a widening range of artificial intelligence problems, such as image classification, speech recognition, text classification, question answering, text-to-speech, and optical character recognition. It is the technology behind photo tagging systems at Facebook and Google, self-driving cars, speech recognition systems on your smartphone, and much more.

In particular, Deep learning excels at solving machine perception problems: understanding the content of image data, video data, or sound data. Here's a simple example: say you have a large collection of images, and that you want tags associated with each image, for example, "dog," "cat," etc. Deep learning can allow you to create a system that understands how to map such tags to images, learning only from examples. This system can then be applied to new images, automating the task of photo tagging. A deep learning model only has to be fed examples of a task to start generating useful results on new data.

350 pages, Paperback

First published November 30, 2017

Loading interface...
Loading interface...

About the author

François Chollet

17 books102 followers
François Chollet is a French engineer and researcher in artificial intelligence.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
848 (66%)
4 stars
321 (25%)
3 stars
78 (6%)
2 stars
12 (<1%)
1 star
7 (<1%)
Displaying 1 - 30 of 129 reviews
Profile Image for Nicholas Teague.
69 reviews15 followers
July 30, 2017
Based on the simple metric of frequency / density of highlighted passage, this text is by far the best book have ever read on subject of machine learning (or most subjects for that matter). The language is clear and easy to follow, even the coding language for that matter - Keras, the machine learning platform of which the author is the architect, is IMO much better entry point for coders to deep learning than TensorFlow based on complexity of reviewed coding tutorials. The text somehow manages to balance covering basics and foundational concepts even while addressing considerations for the advanced practitioner or researcher. For the time being this book will be the one I would recommend first for anyone looking to gain an understanding of current practice / state of the art for machine learning. I believe this will prove to be an important work which opens doors to a whole new class of machine learning engineers. Now if you excuse me I think am finally ready to start experimenting with Kaggle competitions.
Profile Image for Kenta Suzuki.
25 reviews3 followers
August 14, 2017
This book focuses on hands-on approach to deep learning written by the author of Keras. You'll need another book for theory such as deep learning(Ian, Yoshua, Aaron) if you want to study further (whether good or not, Keras abstracts away internal functions of the neural networks). This books covers pretty much basics of what is happening in neural networks. After reading a few chapters, readers(with some programming experience) will be able to apply the techniques easily to real world datasets or to participate in Kaggle (API is much simpler than that of TensorFlow). Although there are some tutorials online about the usage of Keras, it is convenient to have a book which covers most of API with examples. I think this book is much more like 'deep learning with Keras'.
Profile Image for Romet Aidla.
17 reviews5 followers
April 14, 2018
Best practical introduction to deep learning by author of Keras framework and Google researcher.

First part of the book gives fundamental understanding and mathematical building blocks needed.

Second part introduces different practical applications of deep learning networks:
1. Computer vision with convolutional neural networks (CNNs)
2. Text and sequences (time series) with recurrent neural networks (RNNs)
3. Generating text and images using variational autoencoders (VANs) and generative adversarial networks (GANs)

Code is provided as Jupyter notebooks and run without problems. All examples are done using Keras framework, which is very intuitive for a beginner, but all the topics are covered in general perspective and knowledge can be easily used with other frameworks.

Book does not cover deep reinforcement learning.
Profile Image for James Foster.
158 reviews15 followers
May 10, 2018
Deep learning is the newest fad in the computer science world. There are really just two reasons for its popularity: it has solved some difficult problems, and there is a lot of money in it. It has worked pretty well for some problems that looked really hard before, like distinguishing pictures of cats from dogs, recognizing faces (like in your photos), recognizing spoken words (hello, Alexa), interpreting text (as in google queries), and driving cars (without killing too many pedestrians). As it happens, companies with lots of money are actually interested in these things: I’m looking at you, Google, Facebook, and Uber.

As an aside, some people think that science is “objective”, just following the facts, and that engineers use the pencils in their pocket protectors to follow known rules for building things. Neither is actually true. Computer scientists sometimes latch onto a new technology, just because it works on a popular, sometimes actually uninteresting, problem. For example, classifying Irises was a popular, but actually easy, problem back when machine learning was first taking off. When the next algorithm comes around, it gets tested on the same, sometimes easy, problem, succeeding (of course), and then everyone switches to the new algorithm. You stil find many computer scientists classifying Irises (I read a paper doing that just today). Today, the popular, relatively easy, problem is recognizing hand-written numbers from the MNIST dataset. Anyway, a few years ago the hot thing was Support Vector Machines. Then everyone fell in love with Random Forests. And now it’s Deep Learning, which is more like engineering where the engineers are just trying stuff out, making it up as they go along. We computer scientists/engineers sometimes give up on old technologies when shiny new ones come around.

End of digression. Back to the book review.

This is not a “popular” book. It’s more about how these deep nets work, and how to write programs to create them. This is a great book to read if you’re a computer geek interested in coding deep learning programs. If you’re not, then this isn’t the book for you.

But if you ARE, then this is a very clear introduction to what deep nets are, how they seem to work (we don’t really know), and how to build them for several different types of applications. The book uses Keras, which is a nice high-level net description language built on top of TensorFlow (all the non-geeks just stopped reading). It’s pretty easy to follow along and understand the programming, though there is still some unexplained “magic” hidden in the examples.

All in all, of the three deep learning books I have read, this is the clearest for a programmer trying to jumpstart actualy deep learning.
Profile Image for Terran M.
78 reviews101 followers
April 3, 2018
This book is good, provided you do not believe the author's facile claims that it is the only book you need. This book explains almost nothing about how deep learning actually works, and is actually more like a user manual for Keras. Provided you actually want an instruction manual for Keras, it's an excellent book. If you want to *understand* something about Deep Learning, go read the book by Goodfellow et al. They make a nice set, in either order or alternating between the two.
Profile Image for Philipp.
644 reviews201 followers
August 26, 2018

Always remember that when it comes to markets, past performance is not a good predictor of future returns—looking in the rear-view mirror is a bad way to drive. Machine learning, on the other hand, is applicable to datasets where the past is a good predictor of the future.


Really good general intro to machine learning using the Keras library, from the Keras creator himself.

It goes over all the 'standard' approaches with copious code examples - classification, regression, and the main architectures Keras supports: Convolutional Neural Networks, Recurrent Neural Networks, LSTMs, and going above these now-standard models like multi-input/output models, ensembling, etc.

The best part of the book is that it serves as a collection of DL 'folk wisdom'. It's a fast-moving field that builds massive models, which have some attributes that nobody really understands. Over time people found many 'tricks' which are not explainable, but they just make your model work better. Some of that 'folk wisdom' here is a bit explainable - for example, there's a great summary which activation and loss function to use when, and when to use which architecture - some are less explainable, and that's what makes this book so useful. For example, normalise your input values to between 0 and 1 which makes the distribution of learned weights more regular.

If you've done the fast.ai MOOC like I have you won't learn that much in the CNN part, but the other 80% of the book would be truly novel to you.

An interesting prediction towards the end I haven't heard before - 'regular' convolutions should soon be replaced by depthwise separable convolutions (SeparableConv2D). They are cheaper and faster to train, apparently. Has this taken off yet?

For a taste, the author put parts of the final 'outlook' chapters on his blog - the future and the limitations of deep learning. Be aware that the rest of the book is much more technical with heaps of code examples.



Here’s what you should remember: the only real success of deep learning so far has been the ability to map space X to space Y using a continuous geometric transform, given large amounts of human-annotated data. Doing this well is a game-changer for essentially every industry, but it’s still a long way from human-level.
Profile Image for Sergii Khomenko.
19 reviews11 followers
February 11, 2019
Great introductory book, that brings a pretty clear practical explanations of DeepLearning and its limitations.

As a seasonal ML practitioner, you can still find a couple of interesting tricks.

The books also touches more advanced topics like building Variational Autoencoders and Generative Adversarial Networks from scratch while providing practical advices how to make it work.
27 reviews1 follower
April 26, 2020
The perfect practical introduction to DL, it doesn't claim to be a mathematical explanation of DL and it doesn't get bogged down in maths. Instead it gives lots of examples and explains in intuitive ways the implementation where necessary.
Profile Image for Mèo lười.
192 reviews232 followers
September 7, 2020
Quyển này chính là Dế mèn phiêu lưu kí trong deep learning =,= nhẹ nhàng, dễ hiểu, dễ tưởng tượng.
Hiuhiu.
Profile Image for Mohamed Nijadi.
2 reviews1 follower
September 27, 2023
Provides a very clear and easy to understand walkthrough over the keras library. Later chapters are harder to read as the author said that those topics are more advanced, but the overall introduction serves as a very good starting point for anyone looking for a practical hands on experience.
20 reviews
January 12, 2020
Nowadays most deep learning resources are full of exaggeration -- even though it is true that deep learning has many impressive applications people rarely talk about its shortcomings. This book is certainly not one of those resources, and the author does not hesitate criticizing and explaining limitations of deep learning while giving a very good practical introduction using Python.

The book is technically well written, and I like that Chollet tries to explain the intuition behind all the models he builds. One thing I didn't like is that he argues that it's not necessary to explain the technical concepts using mathematical notations, as programmers with no mathematical background can still understand those concepts when presented as snippets. Hence, the book does not contain any mathematical notation, and at times this makes it difficult to decode from Python snippets. Still, since the book mentions "Python" in its title, it's probably okay not to expect any mathematical notation from it.
Profile Image for f1yegor.
9 reviews1 follower
July 26, 2018
Excellent and clear explanation of main architectures and extensive technics of deep learning from the creator of Keras.
Read Conclusion chapter as a sneak-peak of content and also a good fresh-up of the topic.
Book has supplemented github repo for notebooks, but I wasn't reviewing it thoroughly during the first read. Will now.
Profile Image for Alex Ott.
Author 3 books205 followers
October 15, 2017
(maybe close to 9/10)

Very good practical introduction into deep learning based on the Keras. Author explains all major architectures of neural networks without digging into mathematics, on practical examples that are easy to adapt to your own tasks.
June 30, 2020
This is the guide to deep learning using Keras, the most popular tool, from the creator himself.

It provides advanced introduction without dealing with complicated stuffs (math, tensorflow, etc.). Although it is also good for starters, it is not the best choice to jump in without some prior knowledge. As he said in the book, starters may tempt to think that "all you have is [a powerful, easy, black-boxed] deep-learning hammer, and every problem starts to look like a nail."
Profile Image for Joe.
106 reviews1 follower
April 14, 2020
Fantastic read!! The explanations are clear, the examples are very illustrative, and the Jupyter notebooks make following along with those examples very easy.
Profile Image for Bilge.
227 reviews21 followers
February 11, 2021
Türkçesin’i değil ama İngilizcesini tavsiye ederim
Profile Image for Chris Esposo.
677 reviews50 followers
June 19, 2021
It’s hard to get a book “closer-to-the-metal” in applied deep learning than one written by the author of Keras, but that’s exactly what this book is, and it delivers the content extremely well. I listened to the book both in audio format, and probably have gone through 40 - 50% of the book via physical reading, and found the audio delivery was a better channel than I expected, given that this is effectively a programming text, but still was no cigar compared to an actual reading.

The better-than-expected delivery via audio probably has much to do with how much of the book is dedicated not to a software or technical treatment of instrumenting the neural networks, but to the history of machine learning in general, as well as a conceptual overview of the basic machine learning pipeline. Roughly 50 pages of the first 4 chapters (or about half of the page-count for those chapters) is dedicated to this conceptual treatment of machine learning, the first chapter being a history of shallow-learning that led up to the advent of the first neural network, it’s failure in the early 90s, the emergence of both kernel methods and ensembling as a the predominant paradigm, then finally the reemergence of neural networks within the framework of GPU-backed deep neural networks (DNNs), The 4th chapter goes through the standard ML pipeline (model-estimation, train/test, tuning and performance tracking via cross-validation etc., which is almost entirely independent of DNN as a conceptual framework.

These 2 chapters are easily digestible via audio. Chapters 2 and 3, which discusses the rudiments of neural networks conceptually and how to navigate Kera’s internal API are also pretty light-weight in terms of technical content and also are easily digestible via audio. Thus, slightly above a ⅓ of the text is well-written for audio. Where the text becomes troublesome for the audio reader is from chapter 5 onward, where step-by-step code templates for DNNs written within Keras are presented for the two major domain-areas computer vision and text/language. These chapters in my opinion are where the real value of the text lay as they include not only the cookie-cutter basic nets for a set of use-cases within each domain, but there’s a lot of commentary on how design-features (adding/subtracting hidden-layers, where to regularize/drop-out, where to pool etc.) a person may customize in their own net may impact the performance of that use-case in the domain. Going through these chapters carefully can quickly get someone to implement (at least with decent performance).

That being said, the templates are all fairly simple, and more recent innovations like multi-task and other bifurcating network topologies do not make it into the material in any substantial (or at all) manner. Though, it should be remembered this is a first-pass book, and was written in 2015-16 (published in 17/18’ depending on the format), and so this can be excused. Overall, the level of content is decidedly more from the practitioner’s standpoint, which is appropriate for this subfield in machine learning, since a full rigorous treatment of the mathematical properties of NNs still mostly elusive, with the theory currently being constructed, this field should be more of a software engineering domain. In fact, Andrew Ng himself has often stated that the best way to learn NNs is to do NNs, and this book will have you implementing NNs within the first 2 - 3 hours of reading.

This was not the first treatment of the material I’ve gone through, having done most of Ng’s Coursera courses, and other academic material, and having attended some seminars on the the theoretical treatment of the subject also in an academic context (mostly, understanding NNs within the context of universal approximation), as well as deploying some in work, I still found the book to be useful, and will reference it at least for a little while longer. There’s a chapter on best-practices within the Keras API, and I suspect there is some value for even intermediate users of these objects in sections of the text like this, as well as the aforementioned code template-sections.

Overall, I enjoyed this book, and recommend it highly (especially for newer practitioners or students of the subject matter). It seems like it would pair well with Goodellow et. al., and I've seen both of these books required as textbooks in sync in some syllabi for standard graduate courses on the subject.
897 reviews19 followers
December 29, 2022
Not only a top researcher in the field, and the mastermind behind Keras (which is used throughout the book) but Chollet can also explain the ideas too, which makes this one of the few useful additions to the growing number of books on deep learning. (Geron's book is also very worthwhile.) The book has many strengths: code samples, fun examples, distillation of experience. There were one or two places where a bit more detail might have been desirable (e.g. autodiff, batch normalization,...). By putting the balance heavily on fun practical examples, these are places where the book becomes a bit superficial. Nevertheless, a very useful resource.

Additional review of 2nd edition:
Better, if possible, than the first edition. An outstanding introduction; highly recommended.
Profile Image for Boris.
58 reviews5 followers
May 4, 2018
The FASTEST way to become a machine learning developer.

This is surely the best introduction to Machine Learning there is! You get a clear, concise description of how the technology works, and code that you can follow line-by-line and build a variety of models.

I can't praise this book highly enough. Rather than scavenging the internet trying to piece together the ideas behind machine learning, get this book for a coherent package!
Profile Image for Ferhat Culfaz.
243 reviews13 followers
August 1, 2018
Absolutely phenomenal book. A very practical and up to the point book on deep learning techniques in python by the guru who created the Keras library. Hence all the examples in the book are in Keras. Highly recommend anyone who want to get into the field to start with this first, write their own code and tinker, and then go through the more theoretical books such as Deep Learning by Goodfellow et al which is very theoretical, broad and academic.
Profile Image for Ovo Dibie.
2 reviews
October 9, 2019
Best book on practical deep learning by a mile. Francois offers a good balance between theory and practice. As an ML/AI PhD, I found his descriptions of the various areas of deep learning to be thorough yet gentle. Furthermore, code samples in the book are very easy to follow and implement. I recommend this book to everyone serious about deep learning. Can't wait for the second edition of the book
Profile Image for Kevin.
11 reviews
January 2, 2018
Great book overall! Some things took awhile to fully process, but that's expected with the depth the author gets into. The author provided easy-to-follow github repositories to actually work on the projects he walked through in the book. I plan to use this book as a reference whenever I do my deep learning projects
Profile Image for José Roberto.
9 reviews
July 29, 2017
Beautiful book written by the creator of Keras. It's full of valuable information for creating your own deep learning models.
Profile Image for Helen Mary.
178 reviews15 followers
October 27, 2019
An excellent resource. Thorough, practical with code examples, and passionately written by a real deep learning expert.
4 reviews
January 18, 2019
In François Chollet’s technical book Deep Learning with Python, Chollet presents basic theory and implementation of deep neural networks. Chollet describes the mathematical building blocks of neural networks, starting off with the various types of tensors, including scalars, vectors, and multi-dimensional matrices. He then goes on to describe the various components needed to implement a neural network, including input data, layers of neurons, activation functions, optimization algorithms, and backpropagation. In Deep Learning with Python, Chollet presents conceptual ideas in an approachable way, explaining concepts through code and plain English rather than arcane mathematical notation, as is found in other books on the same subject.
The book’s chapters build on top of each other, allowing the reader to develop a solid understanding of the concepts from first principles. In the first part, Chollet introduces neural networks and their related data structures and concepts, explaining each step in code and in words, allowing the reader to follow along and run the code on their computer. He describes the anatomy of neural networks, explaining how data flows within its structure, eventually developing a brain-like web of artificial “neurons” which connect to each other with various strengths (called “weights”). Training a neural network requires large amounts of data, and Chollet describes how to collect, annotate, and split up a dataset into smaller training, test, and cross-verification sets, which are used to train, evaluate performance, and eliminate overfitting, respectively. Additionally, the author discusses the importance of data manipulation and feature engineering, which are important to reduce the amount of training time needed. Since 95% of the effort needed to develop machine learning systems goes to cleaning up and preprocessing the data, understanding how to mean-normalize, one-hot encode, and PCA data is important to develop quality deep learning models that can properly generalize and predict new outputs. In the second part, Chollet describes the various structures of neural networks that can be applied to different machine learning problems, and how to implement them in code. For example, Convolutional Neural Networks, currently in use at Facebook and Google, recognize faces, transcribe text, and help steer self-driving cars. Perhaps the most exciting structure the author discusses is the Recurrent Neural Network structure, which allows computers to process and learn from text and time-series data. Combined with a generative model training method called Generative Adversarial Networks, allows us to generate synthetic images and text often indistinguishable to that produced by human. Overall, Chollet presents a compelling, easy-to-understand introduction to the field of Deep Learning and its various uses.
While I enjoyed deepening my conceptual understanding and running the provided code, this book is intended for a fairly narrow audience and should not be read by the general public. Its technical nature lends no value to people without programming experience or the introductory machine learning background needed to understand the concepts and implement the code. However, those with the necessary introductory experience will find this book to be a gentle introduction to one of the hottest fields in computer science today, which is why I give Deep Learning with Python my highest recommendation. While it lacks the rigor of something like Deep Learning by Goodfellow et al. (which is necessary to read the latest DL papers), it does provide a practitioner with enough knowledge to implement small-scale models for either personal interest or business use.
Displaying 1 - 30 of 129 reviews

Can't find what you're looking for?

Get help and learn more about the design.