I am currently a student in the fast.ai practical deep learnign for coders v5 class and after the first week I built a cloud type classifier called FastClouds - which you can read about here

After the second and third lesson I have implemented some of the things Jeremy discussed and worked through and that is what I have to show you in this post.

Model Refinement

In lesson 2 of https://course.fast.ai/ v5 data cleaning and data augmentation was discussed. Data cleaning turned out to be a big part of making FastClouds perform better as the images i scraped from duckduckgo for clouds turned out to be quite messy and unreliably classified... unsurprising really. Once i'd cleaned up my image data set my model went from ~75% accurate to ~81% accurate.

This is the training with raw data:

This is the training with cleaned up data:

Data augmentation using the fastai DataBlock was super simple to implement. I just added the batch_tfms=aug_transforms() line to my DataBlock definition and fastai took care of the rest for me. Data augmentation did add a bit of skill to the model - we went from ~81% to ~85% - but i suspect that this is because the input images are already quite varied and so augmentation didn't add that much more information for the model to learn. This is a batch of augmented images and they look very similar to the original images:

Final performance

In the end we have a model that is about ~85% accurate using pretty much out of the box fastai methods and using a very small dataset - the final version only used 50 images from each category. As far as I know there is no other model out there that can classify clouds from images with this accuracy.

For reference, the notebook used is here: Kaggle Notebook and here GitHub Repo


Now that we have a model i'd like to be able to make it 'operational' and available for people to use. The Transition to Operations (TROPS) using huggingface and gradio was discussed in lesson 2 and that is what i have used here to deploy the FastCloud model.

The app version looks like this:

and you can go to this URL to play with it.


I'd love it is you send me screenshots of the clouds you classify with this. Thanks for reading.