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

Arvind KumarArvind Kumar
5 min read

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:

  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.”

  2. 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.

  3. 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.

  4. 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…

  1. It’s fun.

  2. It’s culturally rich.

  3. 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:

  1. 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

  2. Label quality matters
    If your “bird” folder has random images of trees, your model is going to be confused. Garbage in → garbage out.

  3. 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

  1. Expect things to break
    The course evolves, but so do APIs, datasets, and libraries. Be ready to adapt.

  2. 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.

  3. The data matters more than the model (at first)
    If your data is messy, no fancy architecture will save you.

  4. 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.

0
Subscribe to my newsletter

Read articles from Arvind Kumar directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Arvind Kumar
Arvind Kumar