What Is TensorFlow and What Is New in It?
Read this article in order to learn more about TensorFlow and to view a tutorial on how to use it in your project.
Join the DZone community and get the full member experience.Join For Free
Objective: In this article, we’ll be learning what TensorFlow is, where it is used, its different features, Tensorflow applications, the latest release along with its advantages and disadvantages, and how to use it in your project.
History of TensorFlow
DistBelief, which is what TensorFlow was called before it was upgraded, was built in 2011 as a proprietary system based on deep learning neural networks. The source code of DistBelief was modified and made into a much better application based library, and in 2015, came to be known as TensorFlow.
What Is TensorFlow?
TensorFlow is a powerful data flow-oriented machine learning library created by the Brain Team of Google and made open source in 2015. It is designed to be easy to use and widely applicable on both numeric and neural network-oriented problems as well as other domains.
Basically, TensorFlow is a low-level toolkit for doing complicated math, and it targets researchers who know what they’re doing to build experimental learning architectures to play around with them and to turn them into running software.
It can be thought of as a programming system in which you represent computations as graphs. Nodes in the graph represent math operations, and the edges represent multidimensional data arrays (tensors) communicated between them.
The latest release of TensorFlow is 1.7.0 and is available on www.tensorflow.org. It has been designed with deep learning in mind, but it is applicable to a much wider range of problems.
Now, as the name suggests, it provides primitives for defining functions on tensors and automatically computing their derivatives.
Tensors are higher-dimensional arrays which are used in computer programming to represent a multitude of data in the form of numbers. There are other n-d array libraries available on the internet, like Numpy, but TensorFlow stands apart from them as it offers methods to create tensor functions and automatically compute derivatives.
You can build other machine learning algorithms on it as well such as decision trees or k-Nearest Neighbors. Given below is an ecosystem of TensorFlow:
TensorFlow Tutorial — TensorFlow Ecosystem
As can be seen from the above representation, TensorFlow integrates well and has dependencies that include GPU processing, python and Cpp and you can use it integrated with container software like Docker as well.
TensorBoard, a suit of visualizing tools, is an easy solution to TensorFlow, offered by the creators, that lets you visualize the graphs and plot quantitative metrics about the graph with additional data like images to pass through it.
mnist_tensorboard – TensorFlow Tutorial
TensorFlow runs on a variety of platforms and the installation is Linux-only and more tedious than CPU-only installation. It can be installed using pip or using conda environment. The applications go beyond deep learning to support other forms of machine learning like reinforcement learning, which takes you into goal-oriented tasks like winning video games or helping a robot navigate an uneven landscape.
There are umpteen applications of machine learning and TensorFlow allows you to explore the majority of them including sentiment analysis, google translate, text summarization and the one for which it is quite famous for, image recognition, which is used by major companies all over the world, including Airbnb, eBay, Dropbox, Snapchat, Twitter, Uber, SAP, Qualcomm, IBM, Intel, and of course, Google, Facebook, Instagram, and even Amazon for various purposes.
- TensorFlow has a responsive construct as you can easily visualize each and every part of the graph.
- It has platform flexibility, meaning it is modular and some parts of it can be standalone while the others coalesced.
- It is easily trainable on CPU as well as GPU for distributed computing.
- It has auto differentiation capabilities, which benefit gradient-based machine learning algorithms, meaning you can compute derivatives of values with respect to other values, which results in a graph extension.
- It has advanced support for threads, asynchronous computation, and queues.
- It is customizable and open source.
- Has GPU memory conflicts with Theano if imported in the same scope.
- No support for OpenCL
- Requires prior knowledge of advanced calculus and linear algebra along with a pretty good understanding of machine learning.
TensorFlow is a great library that can be used for numerical and graphical computation of data in creating deep learning networks and is the most widely used library for various applications like Google Search, Google Translate, Google Photos, and many more.
There are numerous and amazing things that people have done using machine learning, some of which include applications relating to health care, recommendation engines for movies, music, personalized ads, and social media sentiment mining to name a few.
With these advancements in machine learning and artificial intelligence that seem mind-boggling, TensorFlow is a tool that is helping to achieve these goals.
If you enjoyed this article and want to learn more about TensorFlow, check out this collection of tutorials and articles on all things TensorFlow.
Published at DZone with permission of Shailna Patidar. See the original article here.
Opinions expressed by DZone contributors are their own.