What is Tensorflow?
Tensorflow is an open source , high performance library for numerical computation. It is also be used for mathematical computations and is not only limited to machine learning. It uses Python to provide a front-end API for building applications with the framework, and executes those applications in high-performance C++. TensorFlow can train and run deep neural networks.
It has an extensive ecosystem of tools, libraries and resources to build and deploy state-of-the-art enterprise grade ML powered applications.
Tensorflow uses directed graph. Directed graph (or digraph) is a graph that is made up of vertices connected by directed edges often called arcs. Directed graphs can be used to analyse electrical circuits, develop schedules, find shortest routes, analyse social relationships, and construct models for the analysis and solution of many other problems.
It describes 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 nodes is a multidimensional data array, or tensor. The graphs or computational graphs contain nodes where tensors are processed/calculated using the defined function which are operated in series as we move forward in graph. For example, there is a function f(x, y) = x^2 * y + y + 2 then TensorFlow graph will look something like this:
In the figure above, we can see how for a particular function we can make a directed /computational graph and apply our inputs to get the results. Each node has its own pre-defined function and input is given to them. After the function is applied on corresponding input we get output which are further used in the graph. Its just that our inputs and outputs from each corresponding nodes are tensors.
In simple words , tensors are simply mathematical objects used to describe physical properties, just like scalars and vectors. They are a generalisation of scalars and vectors; a scalar is a zero rank tensor, and a vector is a first rank tensor. Tensors provide a mathematical framework for solving physics problems in areas such as elasticity, fluid mechanics and general relativity. The word tensor comes from the Latin word tendere meaning “to stretch”. A tensor of order zero (zeroth-order tensor) is a scalar (simple number). Hence the name TensorFlow derives from the operations that such neural networks perform on multidimensional data arrays, which are referred to as tensors.
Tensorflow Abstraction Layers
TensorFlow provides multiple layers of abstraction and this way we know what is available to us when we write our code, and also choose the right functions or operations.
Libraries and Extensions
TensorFlow provides several libraries and extensions to build advanced models or methods, and access domain-specific application packages that are extended by TensorFlow.