Fast.ai Lesson 1 in 2025: My Journey from Birds & Forests to Sarees (and the Hunt for Good Data)


When fast.ai first launched its Practical Deep Learning for Coders course in 2022, Lesson 1 was a mind-blowing experience for many beginners. In just a couple of hours, you could go from zero to building a deep learning model that classifies images — without needing a PhD, expensive GPUs, or a decade of coding experience.
But here we are in 2025.
Some of the tools have changed.
Some datasets have disappeared.
And some things (like DuckDuckGo image search) have simply decided they’re done helping us.
So, here’s my tale of navigating Lesson 1, the unexpected hurdles, and why my very first project already gave me a reality check about what “data preparation” really means in the machine learning world.
🧠 A Quick Recap of Lesson 1
If you’ve never taken fast.ai before, here’s the big picture of Lesson 1:
Start Small, Start Fun
Jeremy Howard, the course instructor, throws you right into building an image classifier. No weeks of theory. No 100-slide lectures. Just: “Pick two categories, grab some images, and let’s train a model.”Leverage Transfer Learning
Instead of training from scratch, you take a pretrained model (like ResNet) and fine-tune it on your custom categories. This makes it possible to get amazing results with very little data.Iterative Learning
You don’t need to understand every line of code on Day 1. The philosophy is:Learn enough to do something cool → Then come back later to understand how it works.
Immediate Results
By the end of Lesson 1, you have a working image classifier, you’ve seen how to validate its accuracy, and you’ve experienced the thrill of the model actually getting things right.
🚧 The “Simple” Plan That Wasn’t So Simple
The original lesson uses search_images_ddg
to pull images from DuckDuckGo. But in my case?
DuckDuckGo said nope.
The API simply wouldn’t return images the way the notebook expected. And ImageNet — another suggested source — was unreliable.
Then, I hit my first compatibility quirk:
The course’s sample code used fastcore.data.all
, but the latest environment needed fastai.data.all
. Small detail, big time sink.
By now, I was starting to suspect that Lesson 1’s real hidden objective was to test my debugging patience.
💡 My Workaround: Kaggle Datasets
After wrestling with the APIs, I decided: If the internet won’t give me images, I’ll get them myself.
Instead of uploading my own dataset, I went digging in Kaggle’s built-in datasets (which you can directly access in Kaggle Notebooks without downloading/uploading anything).
For my first run, I used the Forest vs Bird dataset. I then wrote custom functions for:
get_items
— to grab the right images from the right folders.get_label
— to correctly assign labels from folder names.
And just like that, my first model was training. You can check it out here:
🔗 Bird vs Forest Notebook
🥻 My First Exercise: Indian Ethnic Wear
The course encourages you to pick your own categories for practice. So for my personal exercise, I decided to try something closer to home: categorizing Indian ethnic wear.
Why?
Because…
It’s fun.
It’s culturally rich.
It makes for a model that’s actually useful in the real world (think: online fashion recommendations).
You can check that notebook here:
🔗 Which Dress?
🎯 The First Big Lesson: Data Is Hard
Here’s the thing: when you see fast.ai demos, it looks effortless. You grab some data, train a model, and get great results. But when I actually tried it, I ran into three big realities:
Finding the right data is harder than you think
Even with all of Kaggle’s datasets, I still had to hunt for one that was:Big enough for training
Small enough to process quickly
Properly labeled
Label quality matters
If your “bird” folder has random images of trees, your model is going to be confused. Garbage in → garbage out.Cleaning data is the real work
A big chunk of my time went into writing functions to ensure the images I was loading were actually usable.
And here’s the kicker: This is exactly how real-world machine learning works. Data gathering and cleaning often take way more time than model training.
😂 Fun Model Moments
Bird or Forest? → Turns out, the forest wins sometimes. A bird hidden among leaves fooled my model completely.
Ethnic Wear Model → My classifier once decided a lehenga was a kurta with unusual ambition.
But honestly, those mistakes are half the fun. You see exactly where your model’s understanding is limited — and it gives you clues for what to fix next.
💭 Takeaways for Anyone Starting Fast.ai
Expect things to break
The course evolves, but so do APIs, datasets, and libraries. Be ready to adapt.Don’t be afraid to swap in your own data source
You don’t have to follow the notebook exactly. Use Kaggle, local images, or anything you can access.The data matters more than the model (at first)
If your data is messy, no fancy architecture will save you.Iterate quickly
Don’t get stuck on theory. Get something working, then learn why it works.
Final Thought
If Lesson 1 taught me anything, it’s this: Deep learning isn’t about writing “fancy math code.” It’s about curiosity, problem-solving, and adaptability.
Sometimes that means teaching a neural net the difference between a saree and a sherwani. And sometimes, it just means figuring out why your image search tool stopped working overnight.
Either way — it’s always a journey worth taking.
Subscribe to my newsletter
Read articles from Arvind Kumar directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
