In a brief

What is Tensorflow ?

  • It is a free and open-source platform for high-performance numerical computation, specifically for ML and Deep Learning.
  • Has a flexible architecture and can be deployed across a variety of platforms (CPUs, GPUs and TPUs) as well as mobile and edge devices.
  • Makes it easy to build and deploy Machine Learning solutions.

Applications of Tensorflow :

Tensorflow is used in applications such as Search Engines, Text Translation, Image Captioning, Recommendation Systems, etc

Installation of Tensorflow :

1. Installing tensorflow in python3

$ pip3 install tensorflow

2. Installing tensorflow in python2

$ pip install tensorflow

3. Install Tensorflow 2.0

$ pip install tensorflow==2.0.0-alpha0

4. Install Tensorflow in Anaconda Environment

$ conda install tensorflow

Tensor

A tensor is a typed multi-dimenstional array. It can be 0-dimensional, 1-dimensional, 2-dimensional and 3-dimensional or n-dimensional.

Types of Tensors :

  1. Zero-dimensional - Scalar (magnitude only)
  2. One-dimensional - Vector (magnitude and direction)
  3. Two-dimensional - Matrix (table of numbers)
  4. Three-dimensional - Matrix (cube of numbers)
  5. N-dimensional - Matrix

Important Keywords :

1. Shape of a tensor :

  • It is the number of elements in each dimension.
  • To get the shape of a tensor we use :
    >> tensor.shape
    

2. Constant :

  • It is a data structure in Tensorflow which when assigned, its values can’t be changed at the execution time.
  • Its initialization is with a value, not with an operation.
    a = tf.constant([[1, 2], [3, 4]])
    

3. Variable :

  • They store the state of graph in Tensorflow and are mutable (i.e. can be changed during execution).
  • They need to be initialized while declaring it.
    new_variable = tf.Variable([.5], dtype=tf.float32)
    new_variable = tf.get_variable("my_variable", [1, 2, 3])
    
  • Here its value can be changed using tf.assign().

4. Placeholder :

  • It is a variable which doesn’t hold a value initially and value to it can be assigned later.
  • The Data type of placeholder must be specified during the creation of placeholder.

5. Rank :

  • The rank of a tf.Tensor object is its number of dimensions. It is also called order or degree.

Important Components of Tensorflow:

1. Graph:

  • It is the backbone of any Tensorflow program.
  • A Graph is composed of a series of nodes connected to each other by edges.
  • Each node represents unit of computation and the edges represent the data consumed or produced by computation.
    tf.get_default_graph()
    # Creating a new graph
    graph = tf.graph()
    # Printing all operations in a graph
    print(graph.get_operations())
    
Advantages of Graphs :
  • Parallelism
  • Distributed execution
  • Compilation
  • Portability

2. Session:

  • It allocates resources.
  • Stores the actual values of intermediate results.
    with tf.Session() as sess:  # Creating a session
    # Perform operations here
    

    Mathematical operations of Tensorflow

    >> tf.add(x,y)  # Add two tensors of same type, x+y
    >> tf.sub(x, y) # Subtract two tensors of same type, x-y
    >> tf.mul(x, y)  # Multiply two tensors element-wise
    >> tf.pow(x, y) # Element-wise power of x to y
    >> tf.exp(x)  # Equivalent to pow(e, x)
    >> tf.sqrt(x)  # Equivlent to pow(x, 0.5)
    >> tf.div(x, y)  # Element wise division of x and y
    >> tf.truediv(x, y)  # Same as tf.div, but casts the arguments as float
    >> tf.floordiv(x, y)  # Same as truediv, excepts rouds final answer to an integer
    >> tf.mod(x, y)  # Element wise remainder from division
    

    3. Graph Visualizer

    It is a component of TensorBoard that renders the structure of your graph visually in browser.

    # Saving a graph for visualization
    with tf.Session() as sess:
    writer = tf.summary.FileWriter("/tmp/log/...", sess.graph)
    

Imperative Programming Environment used by Tensorflow

Eager Execution

  • Using eager execution you can run your code without a session.
  • It evaluates operations immediately, without building graphs.
    tf.enable_eager_execution()  # To enable eager execution in old versions of Tensorflow