Expanding from my **previous** post:

I will create a new jupyter notebook called** 2_Tensors.ipynb.** All my code can be found on **github**.

#### Tensors

A **tensor** is simply an array of data. The tensor **rank** is the number of dimensions the data has. Tensors can be defined in the tensorflow API or using python native data types. This means we can use libraries like **numpy**.

#Tensorflow constants Scalar = tf.constant([2]) Vector = tf.constant([5,6,2]) Matrix = tf.constant([[1,2,3],[4,5,6],[7,8,9]]) Tensor = tf.constant([ [[1,2,3],[2,3,4],[3,4,5]], [[1,2,3],[2,3,4],[3,4,5]], [[1,2,3],[2,3,4],[3,4,5]] ])

import numpy as np #tensors using numpy np_t_0 = np.array(10, dtype=np.int32) np_t_1 = np.array([b"blue",b"red",b"green"]) np_t_2 = np.array([ [True,True,False],[False,False,True],[False,True,False]],dtype=np.bool) Scalar_np = tf.constant(np_t_0) Vector_np = tf.constant(np_t_1) Matrix_np = tf.constant(np_t_2)

#### Sessions

Previously we had executed the graph by using 3 separate steps

session = tf.Session() result = session.run(c) print(result) session.close()

But it is better to use the following form

with tf.Session() as session: result = session.run(Scalar)

This will automatically close the session.

#### Running

Then executing shows that the run command essentially asks Tensorflow to solve for that variable.

with tf.Session() as session: result = session.run(Scalar) print "Scalar (1 entry):\n %s \n" % result result = session.run(Vector) print "Vector (3 entries) :\n %s \n" % result result = session.run(Matrix) print "Matrix (3x3 entries):\n %s \n" % result result = session.run(Tensor) print "Tensor (3x3x3 entries) :\n %s \n" % result result = session.run(Scalar_np) print "Scalar (1 entry):\n %s \n" % result result = session.run(Vector_np) print "Vector (3 entries) :\n %s \n" % result result = session.run(Matrix_np) print "Matrix (3x3 entries):\n %s \n" % result

So the output is.

Scalar (1 entry): [2] Vector (3 entries) : [5 6 2] Matrix (3x3 entries): [[1 2 3] [4 5 6] [7 8 9]] Tensor (3x3x3 entries) : [[[1 2 3] [2 3 4] [3 4 5]] [[1 2 3] [2 3 4] [3 4 5]] [[1 2 3] [2 3 4] [3 4 5]]] Scalar (1 entry): 10 Vector (3 entries) : ['blue' 'red' 'green'] Matrix (3x3 entries): [[ True True False] [False False True] [False True False]]

You may also see .eval() used instead of .run() sometimes. .eval(X) is essentially shorthand for tf.get_default_session().run(X). Eval will always use the default session where as .run(X) can be executed on different sessions.

Direct from Tensorflow documentation

# Using `Session.run()`. sess = tf.Session() c = tf.constant(5.0) print(sess.run(c)) # Using `Tensor.eval()`. c = tf.constant(5.0) with tf.Session(): print(c.eval())

Both give the same answer of 5.0

Continue… onto Tensorboard.