From the course: TensorFlow: Working with NLP

What is TensorFlow?

- [Instructor] TensorFlow is a powerful library that we can use for machine learning. Now, it was developed by the Google Brain team and it powers many of Google's services, such as Google Search, and it was open sourced in November 2015, now, you can use it for all sorts of machine learning tasks, such as image classification, all the way to natural language processing. At its core, it's very similar to NumPy, but with GPU support so it supports distributed computing, that means it works across multiple devices and servers. And it also includes a just-in-time compiler that allows it to optimize computations. It does this by extracting the computation graph from a Python function, and then running independent operations in parallel. These computation graphs can be exported to a portable format, this means that we can train a TensorFlow model in one environment, like I'm doing now using Python on my Windows machine and then run it on my Android phone using Java. Most of the time we'll use high-level APIs, such as Keras, but when you need more flexibility, you'll use the lower level Python API handling tensors directly. TensorFlow runs not only on Windows, Linux and the Mac OS but also on mobile devices using TensorFlow Lite, including both the iOS and Android. Now, if you don't want to use the Python API, then there's C++, Java, Go and Swift APIs. Now, one of the biggest attractions to TensorFlow is the ecosystem that's available. We've already seen that you can build and deploy models with Python, but there's even a JavaScript implementation called TensorFlow.js, which means you can run your models directly in your browser. You then also have TensorFlow Lite, which is using an iOS or Android, but there's more, there's TensorFlow Extended, which is a set of libraries built by Google to productionize TensorFlow projects. So, this includes tools for data validation, pre-processing, model analysis, and you can serve these models with a rest API using TensorFlow Serving. Now, TensorFlow Serving's really important because it's easy to create ML solutions that have one or two users, but what happens when you have to scale that out to hundreds of thousands of users? Then, there's TensorBoard, which is great for visualization because it helps you when training your models. And, finally, TensorFlow Hub provides a way to easily download and reuse pre-trained models. So, these are models that have been known to perform well on certain tasks. This means you aren't starting from scratch, but using the work of other experts.

Contents