Practical Deep Learning: Image Search Engine
- Life Time Access
- Certificate on Completion
- Access on Android and iOS App
Artificial intelligence is one of the fastest growing fields of computer science today and the demand for excellent AI Engineers is increasing day in and day out. This course will help you stay competitive in the AI job market by teaching you how to create a Deep Learning End-to-End product on your own.
Most courses focus on the basics of Deep Learning and teach you about the very basics of different models. In this course, however, you will learn how to write a whole End-to-End pipeline, from data pre-processing across choosing the right hyper-parameters, to showing your users results in a browser.
The case that we will tackle in this course is an engine for Image to Image Search.
Why should you take this course?
This course is not focused on teaching you Neural Networks (ANNs, CNNs, RNNs…), but teaching you how to apply them in real world cases.
If you haven’t worked on a product that uses Deep Learning before, this is the perfect course for you! Throughout the course we will work together on the Image to Image Search engine, starting from ground zero - image pre-processing, creating a model, training it, then testing. After that we will create a simple web application and use it to serve our model in production.
Another cool thing about this course is that we will use multiple programming languages to create the whole application around the model itself. This will make you not only a better AI Engineer but also get you on the path towards becoming a Full stack AI Engineer.
After taking this course you will guarantee yourself to be one step closer to landing your dream job as an AI/ML Engineer by having your own AI product/project in your portfolio.
Libraries/Tools used in the course:
The whole Deep learning back-end of our pipeline will be built using Tensorflow 1.10.0. For some image pre-processing task we will use some basic functionality from OpenCV, the most important Python library for image processing tasks!
For the app's back-end (model handling, image uploading, page navigation, etc.) we will use the Flask python framework.
Who is this course for?
As you can see the course is meant to teach you how to create your own Deep Learning product from scratch.
If you are just starting out with Deep Learning, this course might be too hard for you. But if you like challenges, I do recommend following it. Although I will not be explaining the meat of Neural Networks (ANNs, CNNs), I will explain most concepts in great detail, so even if you are a total beginner you should be able to follow with the help of your peers or my help through the comments section.
If you have Deep Learning experience and want to move it to the next level you will find this course very useful! You can consider it as a level up for your skills by putting your already great skills to new use. At the end of the course you will not only have learned how to create a working End-to-End pipeline, but also hold proof of your skills for potential employers!
The conclusion is this - this is very rare opportunity, not only to learn Deep Learning concepts, but also how to apply that knowledge and create your own web application (as a complete product) from scratch.
I hope to see you in class!
- Python programming
- Basic conceptual understanding of Convolutional Neural Networks (CNN)
- (optional) Previous coding experience with TensorFlow
- What are Image-to-Image Search engines
- How to build your AI based Image-to-Image Search engine
- How to create simple web based interface for your Deep learning models using the Python framework Flask
- Coding a Convolutional Neural Network (CNN) from scratch in Tensorflow 1.10.0
- Using the Python framework Flask to serve a Deep Learning model in production
- How to create an End-to-End pipeline for any Deep Learning model using Tensorflow
- How to create a Flask application from scratch
Import project dependencies
Image loader function
Dataset preprocesing function
Sparse accuracy function
Convolutional block function
Dense block function
Optimization and loss functions
Building the model
Training function - part 1
Training function - part 2
Training the model
Creating training set vectors
First phase testing
Flask app - part 1
Flask app - part 2
Full application testing
The pipeline that we currently have is pretty good, but we can improve it even further!
Let’s go through potential steps that you can take to improve the pipeline that we have created in the course and create a great image-search product.
- Use color features as an additional search filter
- TensorFlow Serving pipeline version
- Use Hourglass attention mechanism to enhance models performance
- Use a model pre-trained on ImageNet
These are some of the go-to ideas on how you can improve the pipeline even further. For bonus content I’ll get you going by explaining the first two improvements.
From 0 to 1: Hive for Processing Big DataLoony Corn