Draft of fastai book

A draft of the fastai book (complements the course) has been released:

@jeremy if we have any comments, questions, or feedback, could we include it as part of this thread? If so, should the topic be moved to an unlocked forum (is #fastai-users:fastai-v2 a better fit)?


Feel free to leave this here. Thanks for asking. I plan to open a wider forum for the book a little later.


Thanks, sounds good. Started reading it and so far it’s great! I was very interested in the history of deep learning that was laid out in the first chapter.

I would just like to note that it seems that the book website is not up yet so those links don’t work yet.

Additionally, there might be some links throughout the book that don’t work ex: in chapter 1 the IMDB dataset link ( Learning Word Vectors for Sentiment Analysis )

1 Like

“Questionnaire” is my favorite part. If book has a questionnaire, I always start chapter by reading it, and trying to answer questions BEFORE learning the answers.
It could trigger hypercorrection effect


amazing thank you for releasing the draft, can´t wait to read it all, started checking the beginning, I share some spelling bits I found:

Chapter 1

  • “For instance, if you create and hand-written digit classifier (as we will very soon!)” : it may be -an- instead of -and-

  • “In this way, we check if the the lessons the model learns from the training set are lessons that generalize to the validation set.”: duplicated -the-

  • “what are the either requirements for “Parallel Distributed Processing”?”: seems like an extra -either-

  • “Do we always have to use 224x224 pixel images with the cat recogition model?”: spelling of -recognition-

  • also when running fileupload in the notebook I get error:
    TraitError: Element of the ‘data’ trait of a FileUpload instance must be a bytes object, but a value of None <class ‘NoneType’> was specified.

Chapter 2

  • "They can also do a good job of combining all of these types of information additional meta data represented as tables, such as user information… ": between information and additional maybe something missing

  • “However, nearly all machine learning approaches have the downside that the only tell you what products a particular user might like”: -the- instead of -they- I think

  • “And indeed, it does turn out the using NLP deep learning methods is the current state of the art approach for many types of protein analysis.”: -the- instead of -that- I think

  • “If we pat the images then we have a whole lot of empty space”: -pat- instead of -pad- I think

  • “we can apply these augmentation is to an entire batch of the time using the GPU, which will save a lot of time.”: maybe some issues in this one

  • cleaner = ImageClassifierCleaner(learn)
    This, in google colab at least, fails to show images, shows menus but not images, at least to me in google colab

  • with out_pl: display(img.to_thumb(128,128)) / out_pl
    This fails to show the image in output widget, no errors but doesn´t show the image

  • When running the full app example in chapter 2, when uploading and image I get the same error than in chapter 1:
    TraitError: Element of the ‘data’ trait of a FileUpload instance must be a bytes object, but a value of None <class ‘NoneType’> was specified.

  • “As we discussed at the start of this chapter, a data product requires thinking about the entire end to end process within which or model lives.”: -or- instead of -our- I think

  • “Out of domain data, and domain shift, are examples of the problem that you can never fully no the entire behaviour of your neural network.”: -no- instead of - known- I think

again thank you for sharing the draft, I believe this book will help and support so many people around the planet, congratulations and will keep reading it :wink:


do you want PRs for editing cosmetic / grammar fixes ?
e.g. nb 1: “and we don’t want to through away all those capabilities that it already has”
through -> throw
also: based on passed data. passed -> past

This is amazing! Congratulations to Jeremy, Sylvain and everyone else involved

Yes that would be great - thanks! :slight_smile: Best is to do one PR with a few fixes, since I have to patch our private repo too.

1 Like

Yeah unfortunately Colab doesn’t fully support ipywidgets.


And thank you for this excellent close reading!

1 Like

argh. distracted by kids needing a star wars baddy but its not letting me push? i can see others had permission???
(I really need to stop trying things on local windows conda)

(fastai2) C:\Users\Brad\fastbook>git push --set-upstream origin proofread/brad_s
ERROR: Permission to fastai/fastbook.git denied to brads####.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

(fastai2) C:\Users\Brad\fastbook>git log
commit ea37cbbdda90af165538e34559fdcb1ba7bb582b (HEAD -> proofread/brad_s, origin/master, origin/HEAD, master)
Author: Jeremy Howard j@fast.ai
Date: Sat Feb 29 14:06:33 2020 -0800

merge 10 and 23
1 Like

@Brad_S you should put a Pull Request in from your specific branch you clone from, and then it can get approved and merged (you can’t directly push right to the master branch).

1 Like

Yep, just on my phone now, but that’s a git push of a locally checked out branch : proofread/brad_s
Trying to push and create the remote branch was failing.
(I had a the same fail by git clone of both https and SSH)

I’m not sure if this is the right thread to post but when I try to run the first notebook 01_intro.ipynb I get an error when doing “from utils import *” in the first cell.
It is complaining about azur and azure cognitive services not being installed.

I don’t ever plan to use azure etc, is there a way I can disable that?

Maybe I missed running a step before starting the notebook in jupyter? ie; a step that installs are the pre-reqs for the book before we fireup jupyter with the intro notebook?


1 Like

Now I’m being asked to install the azure.cognitiveservices.search which I can’t seem to find via pip.

This is not something that a new person should encounter in the first cell of the first notebook.

I was able to run this without error by doing

pip install -r requirements.txt and restarting jupyter.

I think it would be helpful if there is a note before the first cell in 01_intro.ipynb to the effect: "You must have pre-reqs installed before running cell #1 and you need to do X to do that. "


1 Like

thanks for the tip - not quite. I’ve gotten too used to internal git repos - I had cloned only, not forked and cloned. So I was expecting to be able to push a branch (not master) but that wasn’t allowed on the fast repos direct. on the latest git now so thats a win :slight_smile:

Hi Jeremy thanks for sharing a wonderful book
I just posted my first pull request, its only one word long :smiley: :smiley:

Ah well every little bit helps!

Have a fab day mrfabulos1 :smiley: :smiley:

Please don’t use these pre-release draft notebooks and expect them to “just work”. The draft release, and this early-access forum, are for folks who are interested in making a positive contribution after doing their own careful research. If that’s not you (which is totally fine) please wait for the official release in July.


Started reading the notebooks and before fit_one_cycle came across fine_tune().
Just for fun!

1 Like