Source: Deep Learning on Medium
“Checkout this awesome program I created! It can classify written digits at 99% accuracy! Isn’t that great?!”
“Yeah! Can I use it? Can I use it on my phone? Did you make some app or something?”
“No, but I can run it here on my laptop!”
Did you ever come across that situation 🤔?
Many of the tutorials of the subject of deep learning these days are one of the following categories:
- Too theoretical
- Too technical
- Great, but the outcome isn’t accessible in such a way you could make a showoff to your friends
I will try to make this tutorial series neither of them.
This series will guide you carefully through the process of making a full-fledged app, that uses deep learning to predict a dogs’ breed from a picture!
And best of all, its’ name is awesome 😆: “What’s that doggie?”.
It will contain 4 parts:
- Deep learning part
- Server part
- App part
Each part will have a theory subpart, and practical subpart.
The theory part will be as concise as possible, in order to get practical.
NOTE: all the code for this series could be found here.
The deep learning part
In this part, we will go through creating the model that is used to classifier a picture to one of 120 different dog breeds 🐶!
We will use python and the fastai library to do it, which makes the process much faster and easier, without compromising on quality.
We will use the free GPU service google colab for our programming environment, which makes training much faster and saves us time.
I will guide you through the full process of the model creation: from downloading the data — to the final, exported model.
I will also briefly explain how deep neural networks work, and how to use the power of transfer learning to achieve great accuracy.
The server part
In this part, we will create a server that the app will communicate with in order to classify images.
We will be using python and flask to create the server, and the model (created at the deep learning part) to make a prediction.
The server will also contain a simple web app, for testing purposes.
The app part
In this part, we will use the cross-platform framework flutter to make our app. We will be able to take a picture, upload it to the server for classification, and show it to the user in real time.
It will run on both iOS and Android, but in order to run it on iOS, you need to have a mac.
Oh, and prerequisites
- Basic level of python programming.
- No math is needed. Yay 😄!
- Curiosity. This series is not for people who copy and paste code, but for the ones who understand it — and improve it.