TensorFlow is an open source Machine Learning library, created by Google, for developing and running Machine Learning and Deep Learning applications. Find out everything you need to know about it.
Machine Learning is a technology that can be extremely useful for many applications, but which is unfortunately complex to handle. Data acquisition, model training, neural network deployment require significant technical skills.
However, thanks to the different frameworks of Machine Learning, access to this technology has become much easier over the years. Among these frameworks, These include PyTorch, CNTK, MXNet, and Google Tensorflow..
TensorFlow: What is it?
Created by the Google Brain team in 2011 as a proprietary Deep Learning neural network system, TensorFlow was originally called DistBelief. Subsequently the source code of DistBelief was modified and the tool became an application-based library. In 2015 it was renamed TensorFlow. and Google made it open source. Since then, it has undergone more than 21,000 changes through communication and has gone from version 1.0 in February 2017.
Simply put, TensorFlow is a Machine Learning library, a toolbox for solving extremely complex mathematical problems with ease. It allows researchers to develop experimental learning architectures and turn them into software.
It can be thought of as a programming system in which the calculations are represented in graphical form. The nodes of the graph represent mathematical operations, and the borders represent arrows of multidimensional data communicated between them: the tensors.
TensorFlow includes a large number of Machine Learning and Deep Learning models and algorithms. Its front-end application development API is based on the Python programming language, while the execution of these applications is done in high-performance C++.
This library allows in particular to train and execute neural networks. for the classification of handwritten numbers, image recognition, word plunges, recurrent neural networks, sequence-to-sequence models for machine translation, and natural language processing.
Tensorflow: How does it work?
TensorFlow allows developers to create dataflow graphsThese are structures that describe how data moves around a graph or a series of processing nodes.
Each node in the graph represents a mathematical operation, and each connection between these nodes is a multidimensional data arrow: a tensor.
Nodes and tensors are Python objects, and TensorFlow applications are themselves Python applications. However, the mathematical operations themselves are not performed in Python. The transformation libraries available on TensorFlow are written in high-performance C++.. Thus, Python simply directs traffic between elements and provides high-level programming abstractions to connect them together.
TensorFlow applications can run on a local machine, a cluster in the cloud, iOS or Android mobile devices, or even CPUs and GPUs. On the Google Cloud Platform it is possible to run TensorFlow on the following platforms on the TPU (TensorFlow Processing Unit) to take advantage of a major acceleration.
What are the advantages and disadvantages of TensorFlow?
The advantages of TensorFlow are many. First of all, through abstractionThis framework facilitates the implementation of algorithms and allows the developer to focus on the general logic of an application.
Besides.., the “eager execution” mode allows you to evaluate and modify all graph operations separately and transparently rather than having to construct the entire graph as a single opaque object and evaluate everything at once. Likewise, the TensorBoard visualization suite allows you to inspect the way graphics work through a web-based interactive dashboard.
Besides.., with the support of GoogleThis makes it easy to deploy and use TensorFlow. In addition to the TPU offered on Google Cloud to accelerate performance, the Californian giant also offers an online hub to share models created with TensorFlow as well as mobile and web versions of the framework. Another advantage is that it is open source, customizable and modular.
Among its drawbacks is the fact that the same model trained on two different systems will sometimes present variations even though the data he was fed with is exactly the same. In addition, TensorFlow does not support OpenCL. I mean, he requires knowledge in advanced calculus and linear algebra and a strong understanding of Machine Learning.