
Welcome to the course!
Get help in Slack - https://join.slack.com/t/architectings-4fm3218/shared_invite/zt-e7bg7fi9-hcfrrjgUPFWlCTNty5Omkw
Image Classifier: https://machinelearningpipeline.firebaseapp.com
Dashboard: https://my-ml-dashboard.firebaseapp.com/dashboard
Join the Slack - https://join.slack.com/t/architectings-4fm3218/shared_invite/zt-e7bg7fi9-hcfrrjgUPFWlCTNty5Omkw
We go over the different technologies used and why we are using them
I show you an easy way to grab a good amount of images from the web in a quick and efficient manner. Allowing you to download hundreds of images at once speeding up your data collection process.
We create a machine learning model that can classify animals and use it in the browser.
We go over what AutoML is and why we will use it.
Import images to Googles AutoML Vision is a critical task. Without our images we will not be able to train our model. However you don't want to just upload images because of the large number of images you will be using. To stay sane you need to upload and mange your images in a smart way. I show you how to automatically get your images assigned labels when uploading to AutoML Vision.
Learn tips and tricks to using Googles Web Interface to label images for AutoML
The focus of this course is around creating a support system for your model. To do this we need a machine learning model to support. I show you how to easily train a model using Googles AutoML Vision Service.
You may need a more robust and accurate model. For this I show you how to train a cloud hosted model that is significantly more powerful and accurate than an edge hosted model. Googles Cloud Hosted models utilize powerful Titan GPU's.
Understanding how your models training went is a critical step, if its not up to par there is no point in deploy it to production. We go over how to interpret the confusion matrix and see the different false positives and negatives that our model got tripped up on.
An exciting step, but before we can start to use our newly trained model we must export it from the AutoML service in a format that we can actually use. I go over the different exportable formats that are available and the reasons one would use one of over the other.
To use our model we will need a front end that users can go to. I show you how to use React to quickly get a website up and running so we can do just that.
Lets finish using our model that we exported in Section 4
Our website and project will have a few different pages and demos associated with it. In React to allow a user to navigate to a specific page, we use the popular routing framework/library React Router.
Firebase is a fantastic service, primarily because of how easily it allows developers to get up and running with their applications. It really is a one stop shop for applications back end. I show you how to setup a Firebase project and what preferences and gotchas to watch out for.
A more in depth look at an image uploader. We save the images to a google storage bucket allowing you to perform the next steps necessary in your process.
We dive right into retrieving our stored images from our database and cloud storage bucket in preparation of performing inference on them.
The fun part. Making predictions with our machine learning model. Its something special when you finally get to see the results of your hard work.
CORS....love it or hate it, its here to stay. I show you a common error developers come across when trying to access their stored images and how to solve it.
Saving predictions for later consumption or analyzation is something that most developers and machine learning engineer will want to do. I show you how to save our predictions to our database so we can later review the outcomes or use the data in some way.
We clean up the look of our application and add a more convenient way to navigate the site with the introduction of a navigation bar using bootstrap. A popular design library that was created by Twitter.
What would a machine learning pipeline be without an automatic inference section. Learn how to create a system that continually checks to see if there has been a new uploaded image. If there has it automatically grabs it, makes predictions and then saves the predictions. Allowing you to focus on getting more images coming in and not on making sure you get and save predicitons.
A demo that allows a website user to upload an image and receive predictions back based on the contents of the image. It is meant to show you an easy and quick way to create a file uploader.
A popular request is how to create a web page that can be shared with friends, allowing them to upload images and interact with the machine learning model that was created. In this video we do just that.
what are cloud functinos? We go through how to use and create custom triggers for our machine learning pipeline.
We create a function that watches for newly uploaded user generated content. Copying the uploaded image/file to a new bucket that can eventually be used with googles automl.
Fix our last bug and finish up writing our cloud function.
We track the number of images that have been uploaded so that once our threshold has been hit we can automatically have the correct images uploaded to AutoML for us. Reducing the repetitive task of downloading and uploading images for training.
AutoML Vision requires images to be in a certain format when uploading them. For uploading large batches of images the best way is to create a CSV file that google can parse and import from. Once we have meet our image threshold I show you how to create a temporary CSV and upload it to our google storage bucket.
Tracking our models usage over time will be an important part of understanding how our model is being used in production.
We create and update our models statics and analytics so that we can see its performance in real time.
We save our models performance so it makes sense that we save our models labels performance as well.
We need a simple way to see an overview of how our model is performing in production. By having an overview of its average precision and min and maxes we can understand where our model may need additional training.
We connect our newly made dashboard to our models analytics so that we can view its performance and share it with others.
We connect our label information and analytics to our dashboard to be show off visually.
For a pipeline to be scale able and robust we need to make sure we look ahead. In our current implementation we are storing the days data in the Real Time Database, which is fine for a day or two. However machine learning projects typically use lots of data and for this reason we want to make sure we store any historical data in Firestore in stead of the RTDB.
Learn how to schedule a cloud function to run without a manual trigger, using a Cron Job.
Using a Cron Job to export the rest of our label's analytics to firestore.
Human in the Loop is a popular phrase in machine learning, yet it does not have much literature or tools around actually performing it, except for hiring data labelers to review the data. I show you a custom solution to reviewing your models predictions.
To utilize Revali we need to have an API that can get some images for us to review. I show you how to create a REST Api that can do just this.
Once our images have been reviewed we need to make sure to save that information back so that we can utilize it the next time we decide to retrain our model. We utilize an API to do this.
I show you you everything you need to start using your tflite and tensorflow.js machine learning models in production. Create a website that allows users to upload images, get predictions from your custom machine learning model and review the performance of the model in real time.
Whether you already have a computer vision model or not I show you how to easily create one and ultimately use and deploy it to production. Learn how to use your own custom models with tensorflow.js, allowing users to upload images and get predictions back on that image.
We create an entire pipeline that allows you to improve and monitor your machine learning model's over time. Allow users to upload new images for predictions, saving those predictions and then using the new images as training data to improve our custom models performance.