Deep learning is merged into the normal operations of many companies due to the availability of huge repositories of data and easy to develop learning frameworks. Here, you'll use Keras to develop one such network or implement into your own model.
As machine learning and deep learning techniques become popular, the importance of intuitive and simple abstractions that enable fast development and quick prototyping of these models become critical. In this course, Building and Deploying Keras Models in a Multi-cloud Environment, you'll learn the simple and intuitive functions and classes that Keras offers to build neural network models. First, you'll gain an understanding of the basic working of a neuron and how neural networks are structured and trained. You'll study the simplest form of a model, a network for linear regression which can be built using the simple Sequential model class in Keras, along with other forms of Sequential models such as convolutional neural networks for image classification. Next, you'll move on to recurrent neural networks and understand their ability to store state using outputs from previous time instances, and build a sequence-to-sequence RNN for language translation from English to French using Keras' functional API. Lastly, you'll learn to build and train these models on the most popular cloud platforms, Azure, AWS and the GCP. You'll study their IaaS and PaaS offerings for machine learning and use deep learning VMs or the distributed training framework to train our models. By the end of this course, you will be very comfortable using the Keras high-level API to build your machine learning models and know how you can take these models to the cloud for training at scale.
A problem solver at heart, Janani has a Masters degree from Stanford and worked for 7+ years at Google. She was one of the original engineers on Google Docs and holds 4 patents for its real-time collaborative editing framework.
Course Overview Hi! My name is Janani Ravi, and welcome to this course on Building and Deploying Keras Models in a Multi-cloud Environment. A little about myself. I have a Masters in Electrical Engineering from Stanford and have worked at companies such as Microsoft, Google, and Flipkart. At Google, I was one of the first engineers working on real-time collaborative editing in Google Docs, and I hold four patents for its underlying technologies. I currently work on my own startup, Loonycorn, a studio for high-quality video content. In this course, we'll learn the simple and intuitive functions and classes that Keras offers to build neural network models. We start off by understanding the basic working of a neuron and how neural networks are structured and trained. We then study the simplest form of model, a network for linear regression which can be built using the simple sequential model class in Keras. We'll study other forms of sequential models as well, such as convolutional neural networks for image classification. We then move on to recurrent neural networks and understand how they have the ability to store state using outputs from previous time instances. We then build a sequence-to-sequence RNN for language translation from English to French using Keras' functional API. We then see how we can build and train these models on the most popular cloud platforms today--Azure, AWS, and the GCP. We'll study the Infrastructure as a Service and Platform as a Service offerings for machine learning and use deep learning VMs or the distributed training framework to train our models so that you get an idea of how each of these work. At the end of this course, you will be very comfortable using the Keras high-level API to build your neural network, and you'll know how you can take these models to the cloud to train at scale.
Composing Sequential Models in Keras Hi, and welcome to this course. In this course, we'll use Keras to build deep-learning modules in a multi-cloud environment. We start at the very beginning. We start off by seeing how we can build sequential models in Keras. There are plenty of languages and frameworks which help us build deep-learning networks with neural nets. Keras, in fact, is not a framework nor a language. It is a high-level API for building deep-learning modules. It simply gives you a way to specify your deep-learning module in a very simple and intuitive manner. Keras allows you to express your deep-learning module in a very simple manner. Keras works with several different backends where the actual execution of your model occurs. TensorFlow, CNTK, Theano, all of these work with Keras. The basic building block in Keras is the model object. In fact, that's what you define, and you add layers to this model in order to build up your deep-learning neural net. A sequential model is the simplest model that you can build in Keras. The sequential model is just a linear stack of layers where the output of one layer feeds into the next layer. The layers in a sequential model can be dense layers, convolutional layers, pooling layers, recurrent layers, and many more.
Using the Functional API in Keras Hi, and welcome to this module where we use the functional API that Keras offers. Now so far, all we've built were sequential models. These are simple, linear neural networks. More complex problems often require more complex neural networks, and these can be constructed using the Keras functional API. The way we used models and layers earlier was where we instantiated a model and added layers to it. The functional API of Keras basically allows us to use models and layers as functions that can be invoked on the input that you pass to it. In this module, we'll work to build one fairly complex machine learning model using a recurrent neural network, and, thus, we demonstrate the use of the functional API. We'll build an encoder-decoder recurrent neural network for language translation from English to French.
Running Keras on Microsoft Azure Hi, and welcome to this module where we'll see how we can run Keras on Microsoft Azure. Popular cloud providers, such as Microsoft's Azure, Amazon's AWS, and the Google Cloud Platform, generally provide a variety of compute offerings for your applications including machine learning applications. These compute offerings can be in the form of VM instances, this is Infrastructure as a Service, Docker containers where you can package and import your application from one place to another, or managed services, these are Platform as a Service offerings. Azure just like other cloud platforms offers a variety of machine learning offerings, of which we'll take a look at the Azure Deep Learning VM. This is a powerful virtual machine that has been optimized to run your machine learning models. The Deep Learning VM comes built in with all the software that you might need for data analytics and data science. It also includes Keras, and we'll see how we can run your Keras model on the Deep Learning VM.
Running Keras on Amazon AWS Hi, and welcome to this module where we'll run Keras on Amazon's AWS. This is Amazon's cloud offering, and just like Azure, Amazon has great offerings that span Infrastructure as a Service, PaaS, and even containers. Amazon's Platform as a Service offering is AWS SageMaker. SageMaker is an entire framework that allows you to run distributed training and deployment on the cloud. In this module, however, we'll use Amazon's Infrastructure as a Service option. These are Amazon Machine Images that have been tailored for deep learning. Keras can run both on AWS SageMaker, as well as on Amazon Machine Images, which are specifically built for deep learning with GPU support. In this particular course, we'll see how we can take our Keras model to the cloud on AWS using deep learning machine images.
Running Keras on Google Cloud ML Engine In this module, we'll take our Keras model to train on the Google Cloud Platform. We'll do something different here. Instead of using a standard deep learning VM, instead we'll use Google's Cloud ML Engine, which is a managed service that can be used for training, as well as prediction. This is Google's framework where you do not have to explicitly allocate VMs on which you want to train your machine learning model. You'll simply package it up as a Python package, and there is a training service that will run training on your ML model in a distributed manner, all abstracted away from you. Google's Cloud ML Engine or Cloud MLE has been explicitly built for the distributed training of TensorFlow models. Because our Keras model uses TensorFlow at the backend, we can run this Keras model in a distributed manner.