Inspiration

Recently completed the "AP with Python" nano-degree on Udacity and this is my first AI project since. Was hoping to challenge myself and I got what I was looking for, and more.

What it does

This project uses a pre-trained model and modifies it's classifier to identify and classify photos of defect products.

How I built it

This was built on Anaconda Python and Pytorch. The pre-trained model was trained and validated against picnic train data. The resulting model was then saved on file and then used to make predictions.

Challenges I ran into

Finding a computer that has a decent GPU. I had access to a laptop with the NVIDIA GeForce MX110 but this could only train a pre-trained alexnet model. Other pre-trained models (vgg13, vgg16) require more than 2GB GPU RAM to work with the training hyper-parameters I wanted to use. In the end, I found out about Paperspace which lets you create virtual machines according to your needs.

Accomplishments that I'm proud of

I managed to train a vgg16 based classifier on a cloud computing GPU I had never heard of before. Also got to learn and respect the intricacies between CPU and GPU specifications.

What I learned

Decent GPUs (6GB+, 700+ cores) are an absolute must in deep learning. Those specs may not be enough depending on the kind of images being classified. High spec GPU's are available on the cloud with fair pricing. The key to keeping costs low is to maximize the use of the machine while it's on. Don't leave it idle. Learnt that train data needs to be split into subfolders. Each of these subfolders should contain images of the same category.

What's next for picniclassifier

I will look into adding the ability to resume training from where it left off since training takes a long, long time.

Built With

Share this project:

Updates