From the course: TensorFlow 2.0: Working with Images

What is TensorFlow

- [Instructor] TensorFlow is a powerful library that we can use for machine learning, and was developed by the Google Brain Team, and it powers many of Google services such as Google Search, and it was open sourced to 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's support to 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 drafts 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 the 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 for 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 save these modules with the REST API using TensorFlow Serving. Now, TensorFlow Serving is 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