Why Tensorflow?
You must be wondering if you need to know Tensorflow. Maybe you seek reasons to accept and adopt Tensorflow.
Here is the answer.
Since world is focusing on Artificial Intelligence in some way or other, Deep Learning (as the best component of Artificial Intelligence) is going to take the centre-stage. Deep Learning does a wonderful job in pattern recognition especially in the context of images, sound, speech, language and time series data
When we talk about Deep Learning, we're likely to discuss the best frameworks for development. Fortunately, in November 2015, Google has released Tensorflow, a Deep Learning framework, that has been used in most Google products such as Google search, spam detection, speech recognition, Google Allo, Google Now and Google Photos.
Tensorflow allows Model Parallelism and Data Parallelism. It provides multiple APIs, and the lowest level API --TensorFlow Core - provides you with complete programming control.
Tensors
The best way to start enjoying the Tensorflow library is to get comfortable with basic unit of data used in Tensorflow.
The basic unit is a Tensor. A Tensor is a mathematical object, a generalization of scalars, vectors and matrices.
Multidimensional array is a data structure suitable for representing a tensor
9 # a rank 0 tensor; this is a scalar with shape [ ]
[1. ,2., 3.] # a rank 1 tensor; this is a vector with shape [3]
[[5., 2., 7.], [3., 5., 4.]] # a rank 2 tensor; a matrix with shape [2, 3]
[[[6., 2., 3.]], [[7., 8., 9.]]] # a rank 3 tensor with shape [2, 1, 3]
Top 10 Key Points about Tensorflow
The core program of Tensorflow can be understood in simple statements:
Its programs are usually structured into a construction phase and execution phase.
The computational graph is built in construction phase
Construction phase assembles a graph having nodes (ops/operations) and edges (tensors)
Tensors as input and Tensors as output for any operation (node). Addition is an operation (node) that takes two tensors as input and gives a tensor as output
The computational graph is run in execution phase. Execution phase uses a session to execute ops in the graph
The simplest ops (operations) is a constant that takes no inputs but pass outputs to other ops that do computation
An example of ops can be multiplication (or addition, subtraction that takes two matrices as input and passes a matrix as output
The Tensorflow library has a default graph to which ops constructors add nodes
To actually evaluate the nodes, we must run the computational graph within a session
A session encapsulates the control and state of the TensorFlow runtime
TensorFlow programs use a Tensor data structure to represent all data -- only Tensors are passed between operations in the computation graph. You can think of a TensorFlow tensor as an n-dimensional array or list. A Tensor has a static type, a rank, and a shape.
Let's start coding in Tensorflow
There are three variable types in Tensorflow. Variable, Placeholder and Constant.
Variable:
An explanation of the above code:
Import the Tensorflow module and call it tf
Create a constant value(x), and assign it the numerical value 12
Create a session for computing the values
Run just the variable x and print out its current value
To be comfortable, let's look at another example:
An explanation of the above code:
Import the Tensorflow module and call it tf
Create a constant value called x, and give it the numerical value 12
Create a Variable called y, and define it as being the equation 12+11
Initialize the variables with tf.global_variables_initializer()
Create a session for computing the values
Run the model created in 4
Run just the variable y and print out its current value
Placeholder:
A placeholder is a variable that we can feed to at a later time. It is supposedly designed to accept external inputs. Placeholders can have one or multiple dimensions, meant for storing N-dimensional arrays
An explanation of the above code:
Import the Tensorflow module and call it tf
Create a placeholder called x, mentioning the float type
Create a Tensor called, y that is the operation of multiplying x by 10 and adding 500 to it. Note that any initial values for x is not defined.
Create a session for computing the values
Define the values of x in the feed_dict so as to run y
Print out its value
In the following example, we create a 2 by 4 matrix (2-D array) for storing some numbers in it. We then use the same operation as before to do element-wise multiplying by 10 and adding 1 to it.The first dimension of the placeholder is , that means any number of rows is allowed. We can also consider 2-D array in place of 1-D array.
Here is the code:
Constant:
Constants are initialized when you call tf.constant, and their value can never change. By contrast, variables are not initialized when you call tf.Variable. To initialize all the variables in a TensorFlow program, you must explicitly call a special operation as follows:
It is important to realize init is a handle to the TensorFlow sub-graph that initializes all the global variables. Until we call sess.run, the variables are uninitialized.
I hope you have enjoyed learning the basics of Tensorflow. You can find more details in my book to be published next month. Please feel free to comment.
Navin Manaswi is writing a book on Deep Learning using Tensorflow. He has delivered end-to-end AI solutions for Telecom, Insurance, Digital Marketing and Smart City. He has worked for Dubai Smart City Project, General Mills and was also a part of a consulting firm in Malaysia. At present, he offers consultancy for Data Science and AI projects. He is an active AI blogger and author of many articles on Deep Learning and Machine Learning.