I rebuilt seven of nine Lesson 1 projects this week without following the cleaned notebooks line by line. Four were built twice, once with fastai’s higher-level APIs and once with the DataBlock API.
A sudden death in my family required a six-hour drive each way for the funeral, so I had less time than planned this week. Completing eight projects still feels like real progress.
My test was whether I could work from the API documentation and reproduce the workflows myself. In most cases, I could.
Seven of nine ran
I completed a bird classifier, cat-versus-dog and breed classifiers, two multi-label classifiers, an Adult income model, and a MovieLens recommender.
The CamVid segmentation classifier and a BIWI point predictor remain open.
View this week’s Jupyter notebook
Accuracy and error rate tell the same story
Error rate and accuracy are two sides of the same story. In fastai, error rate is simply one minus accuracy. A model with 92% accuracy has an 8% error rate. Both are easy to understand when the classes are reasonably balanced and different mistakes have similar costs.
F1 combines precision and recall. I can see how that becomes useful when one class is rare or when false alarms and missed cases both matter. I still need practice choosing between binary, macro, micro, and weighted F1 for different problems.
I stopped choosing learning rates by habit
The biggest change this week came from lr_find.
Before using it, I tended to copy the learning rate from the course notebook or stay with the default. lr_find gave me a repeatable way to choose a starting point.
Fastai runs a short test while increasing the learning rate and recording the loss. It then suggests a rate based on the shape of the curve. The current default uses the valley method, though slide, minimum, and steep are also available.
I now look for a rate in the part of the curve where the loss is falling, before it begins to rise sharply. Leslie Smith’s original learning-rate range test, described in in Cyclical Learning Rates for Training Neural Networks, was designed to estimate reasonable bounds in this way.
I still do not fully understand when the suggestion methods will disagree. For now, I use the default and inspect the plot instead of treating its answer as an exact solution.
That small change has made training feel less arbitrary.
Next week
I will start Lesson 2. In addition, I will continue to build the CamVid segmentation classifier and the BIWI point predictor from the beginner tutorials. I will also retry the text classifier in another environment.


