TensorFlow is an open-source end-to-end framework for building Machine Learning apps. It’s a symbolic math toolkit that performs a variety of tasks including deep neural network training and inference using dataflow and differentiable programming. It enables programmers to construct machine learning applications by utilizing a variety of tools, frameworks, and community resources.
Table of Content
What is TensorFlow?
TensorFlow is a Python-friendly open source library for numerical computation, helping to develop machine learning and neural networks faster and easier. It is well known that machine learning is a very complex discipline, but implementing machine learning models is less difficult than it used to be, thanks in large part to machine learning frameworks – such as Google's TensorFlow. Which makes the process of easily getting data, training models, serving predictions and refining future results much easier. Created by the Google Brain team and initially released to the public in 2015, TensorFlow is a greatly enhanced open source library for numerical computation and very large-scale machine learning.
TensorFlow conveniently bundles together many machine learning and deep learning models and algorithms and makes them highly usable through common programmatic metaphors. It uses languages such as Python or even JavaScript to provide very convenient front-end APIs for building their applications while executing those applications in high-performance C++. TensorFlow also has an extensive library of pre-trained models that people can use in their own projects. People can also use the code from this model garden as an example of best practices for training their own models.
How does TensorFlow work?
TensorFlow allows developers to create website dataflow graphs – structures that describe how data moves through a graph or a series of processing nodes. Each node in the graph represents a mathematical operation, and each connection or edge between the nodes is a multidimensional data array or tensor. TensorFlow applications can be run on any convenient target: a local machine, a cluster in the cloud, iOS and Android devices, CPU or GPU. If you use Google's own cloud, you can run TensorFlow on Google's custom TensorFlow Processing Unit (TPU) silicon for even more speed. However, the resulting models created by TensorFlow can be deployed on any device where they will be used for predictions. TensorFlow 2.0, released in October 2019, revamped the framework in several ways based on user feedback, making it easier to work with (for example, using the relatively simple Keras API for model training) and more Demonstrator. A new API makes it easier to run distributed training, and support for TensorFlow Lite makes it possible to deploy models on more diverse platforms. However, Code written for older versions of TensorFlow needs to be rewritten - sometimes only slightly, sometimes significantly - to take maximum advantage of the new TensorFlow 2.0 features.
Applications of TensorFlow
We are in the early stages of machine learning technology, so no one knows where it will take us. But there are some early applications that may give us a peek into the future. As it originates from Google, it is clear that Google uses the technology for many of its services.
More on Image Analysis
We have discussed the example of using the technique for image analysis in Google Photos. But the image analysis application is also used in the Google Maps Street View feature. For example, TensorFlow is used to convolve an image with map coordinates and automatically blur the license plate numbers of any cars accidentally included in the image.
Speech recognition
Google is also using TensorFlow for its voice assistant speech recognition software. The technology that allows users to dictate isn't new, but including TensorFlow's enhanced library into the mix could kick the feature up a few notches. Currently, speech recognition technology recognizes over 80 languages and variants.
Dynamic translation
Another example of the "learning" part of machine learning technology is Google's translate feature. Google allows its users to add new vocabulary and correct mistakes in Google Translate. Ever-increasing data can be used to automatically detect the input language that other users wish to translate. If the machine makes mistakes in the language detection process, users can correct them. And the machine will learn from those mistakes to improve its future performance. And the cycle goes on.
The future of TensorFlow
What could one possibly do with a machine that is capable of learning and making its own decisions? As a person who deals with more than one language as part of daily life, the first thing that comes to my mind is language translation. Not in word by word level, but in more text level like documents or even books. Today's translation technology is limited to vocabularies. You can easily find out what "So" is in Chinese and vice versa, but try throwing in a chapter of Eiji Yoshikawa's Musashi in its original Japanese and translate the chapter into English. You'll see what I'm getting at. It's also fun to see what the future of artificial intelligence might do with music. While it's still very basic, Apple's Music Memos app can already give you automatic bass and drum accompaniment to your recorded vocals. I remember an episode of a Sci-Fi TV show where a character in the show built a machine that analysed all the top songs on the charts and was able to write its own hit songs. Will we ever get there?
Leave a Reply