Data is the greatest advantage available to the current generation. Yet, it can be the undoing of operations if not harnessed well. Data has made competition stiffer and the differentiating factor is how well enterprises use it to their advantage. AI is a very powerful tool that has revolutionized the data world. Deep learning and cloud adoption have unearthed AI’s potential in a way that has never been witnessed before, yet this is not half of AI’s potential. Right from autonomous vehicles, image recognition, virtual assistants, customer relationship management, and fraud detection, to language translation, deep learning has delivered some of the most intelligent solutions to address complex business problems for improved customer experience.

Deep learning is a subset of machine learning, a branch of AI, that uses layers of artificial neural networks to simulate the actions and intelligence of the human brain by learning from input data. In recent, deep learning has caught much attention with more AI professionals considering taking up a **deep learning course**** **to advance their skills. This is because deep learning algorithms have been found to achieve way more accurate results compared to other machine learning techniques. As a result, libraries like TensorFlow, Keras, Theano, PyTorch, and many more have been developed to accomplish deep learning tasks. Of these libraries, TensorFlow is the most preferred and widely used deep learning library.

<iframe width=”560″ height=”315″ src=”https://www.youtube.com/embed/QPDsEtUK_D4″ title=”YouTube video player” frameborder=”0″ allow=”accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture” allowfullscreen></iframe>

**TensorFlow overview**

TensorFlow is an open-source deep-learning library developed by Google’s AI researchers and software engineers in November 2015. It is the power behind users’ improved search experience on the Google search engine. Thanks to TensorFlow, Google has one of the best recommendation systems. TensorFlow, written in C++ and CUDA, Nvidia’s language used for dataflow programming for a range of tasks.

TensorFlow supports the following:

- Machine learning, deep learning, and neural network tasks
- GPU and CPU distribution processing
- Multidimensional-array-based numeric tasks
- Automatic differentiation
- Model creation, training, and export

**Components of the TensorFlow framework**

**Graph structure**

TensorFlow makes use of a dataflow graph structure. All computations in TensorFlow are done in a graph in which only tensors can be passed between operations. The graph comes with several advantages for training data. First, it is designed to run on GPUs, CPUs, and mobile operating systems. In addition, it is portable thus allowing it to store computations to be used immediately or executed later.

**Tensors**

TensorFlow derives its name from the word Tensor. A tensor is a vector or matrix of n-dimensions representing data types that are passed as input in a deep learning model. It is often represented as a ** tf.Tensor **object on which operations will be executed to produce a value. All computations in TensorFlow involve tensors and are performed in a graph. The values in a tensor have the same known data types. However, the shape which is defined by the number of dimensions of different sizes in a vector or matrix may be known or only partially known. However, if an operation in a tensor involves inputs of fully-known shapes, then the shapes of their output will also be fully known.

A tensor can be a result of either computation of values or input values. Each operation in a tensor is known as an** op node** and is made up of a node and an edge. The node represents computations carried out on a ** tf.Tensor **objects that build into a dataflow graph through which operations are carried out in sequence to produce an endpoint output. The edge is the input/output link between nodes.

Also, it is important to note that tensors are immutable. They can only be created but their contents can never be updated.

**Attributes of a tf.Tensor object**

The core attributes of tf.Tensor objects are:

**Tensor.shape**: As mentioned, the shape represents the dimensions of vectors and matrices along the axes i.e the number of elements in each dimension of a tensor.**Tensor.dtype (data type)**. The data type shows the types of elements present in a tensor.**Rank**. A tensor typically has multiple dimensions. The rank of a tensor is determined by the number of dimensions in the tensor. For instance:- A zero-dimensional tensor (rank zero) is known as a scalar
- A one-dimensional tensor (rank one) is known as a vector
- A two-dimensional tensor (rank two) is known as a matrix
- A three-dimensional tensor (rank three) is known as a cuboid

**Different types of tensors**

There are four main types of sensors that can be created when operations are run on a tensor. These are:

**tf.variable**. This is a tensor whose value is changeable across operations. Tensors in a graph can be referred to as variables.**tf.placeholder**. A placeholder tensor allows you to feed values and build computations into the TensorFlow graph.**tf.constant**. This is a tensor that contains a fixed value assigned to it when created.**tf.SparseTensor**. In TensorFlow, a sparse tensor is represented as three separate dense tensors. These are indices, values, and shapes wrapped into a sparse tensor object before running operations on the object.

The TensorFlow machine learning library was built to offer simplicity and ease of running machine learning operations with massive datasets. TensorFlow can be used for training deep neural networks for such applications as handwritten digits classification, natural language processing, image recognition, and much more. It features intuitive high-level APIs and eager execution updates to ease flexible ML model prototyping and model production at scale. This makes it a top framework in thE AI and ML fields.