What I learned from the Fast AI course

A blog that documents my progress and what I learned from the Fast AI course.

Hey! My name is Bendik and welcome to my ELEC4630 blog👋🏼


During the work on assessment 2, I started working with fastAI. After downloading and setting everything up, I started of running the already made fastAI code for classifying birds. Looking at the code, I saw how simple and high-level fastAI is making it an effective language for machine learning tasks.


fastAI

I learned how easy it is to collect and organize data with fastAI's integration with tools like duckduckgo_search, which allowed me to download images automatically from the web without needing to search or organize them manually. I have always seen data collection as a difficult and time-consuming task but this made it a lot easier.


When it came to training the model, I discovered the benefits of using a pre-trained model for learning new connections. By fine-tuning a pre-trained model like ResNet18, we were able to quickly adapt it to bird recognizing with only seconds of training. The process of fine-tuning in fastAI was straightforward and efficient, and I was able to get good results in a short time. Before, I have always trained my models from scratch, which took a lot of time and resources. Using pre-trained models therefore changed my perspective on developing new models.


It was also my first time working with the DataBlock API, which simplified the data preparation process. With it, the dataset was easily split into training and validation sets, correctly resized to the same sizes. DataLoaders were also created all with minimal code.


Something that made an impression on me was how good the neural network was able to classify the images given how bad our dataset was. When you get images from duckduckgo_search, you get a lot of images that are not actually what you want, like airplanes seend from the inside or images that are of something completely different. Before I thought that cleaning up data was a crucial part of the process, that was necessary to get good results. But with fastAI, I learned that it is not always necessary to have a perfect dataset. You can still get good results with a lot of noise in the data.


Overall, I learned that fastAI is a fast and easy way to quickly set up and train a neural network.