I have spent couple of hours on weekend to understand the concepts of tensorflow and would like to contribute in simplest form as most of the articles I read were too complicated and took me a while to understand.

A **tensor** consists of a set of primitive values shaped into an array of any number of dimensions. To make it more simple, consider it as an array of data.

```
ex:
[1]
[1,2]
[[1,2],[3,4]]
.....
```

**Tensorflow** is the flow of data(*tensor*) between different nodes(operation) of graph.

#### Installation :

pre-requisite : Python 3.5

```
pip install tensorflow
```

#### Building Blocks

**Constant** : You can store your data and cannot be altered(as the word says)

```
constant1 = tf.constant([2])
constant2 = tf.constant([2,4])
```

**Variable** : data can be altered

```
var_data = tf.Variable(5) // var_data = 5
new_value = tf.add(var_data,var_data) // new_value = 10
update = tf.assign(var_data,new_value) // var_data =10
```

You need to initialize all variables using below function before running it using session(will discuss later).

```
tf.initialize_all_variables()
```

**Placeholder** : Same as variable but data would be assigned later in session. Consider scenario, you have a formulae by no data yet.

```
x = tf.placeholder(tf.float32)
y = x*x
with tf.Session() as session:
result = session.run(y,{x:10})
print(result) // 100
```