# Using TensorFlow on CloudxLab

We are glad to inform you that the TensorFlow is now available on CloudxLab. In this example, we will walk you through a basic tutorial on how to use TensorFlow.

What is TensorFlow?
TensorFlow is an Open Source Software Library for Machine Intelligence. It is developed and supported by Google and is being adopted very fast.

What is CloudxLab?
CloudxLab provides a real cloud-based environment for practicing and learn various tools. You can start learning right away by just signing up online.

In this blog, we will go through a slight deviation of the first example of TensorFlow in the stepwise fashion as mentioned here. The objective of the exercise is to figure out the straight line that fits the given data. A line is characterized by the slope and intercept. In other words, we need to figure out the line that best suits the following points.

The end result of this exercise is to figure out the blue line as shown in the graph below:

Step 0: Login into cloudxLab

See this video to know how to login into the console.

Step 1: Start python interactive shell

Type “python” (without quotes) command on shell

Step 2: import libraries needed

```import tensorflow as tf
import numpy as np```

Step 3: Generate Some random data

```x_data = np.random.rand(100).astype(np.float32)
def f(x):
return x*0.1 + 0.3 + (np.random.rand()-0.5)/200
y_data = map(f, x_data)```

Step 4: Define the variables that we need to figure out

```W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))```

Step 5: Define relation between them – For simplicity we are assuming relation to be linear

```y = W * x_data + b
```

Step 6: Define Loss function

```# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))```
Step 7: Define the algorithm that we want to use.
```# For simplicity we are going to use standard Gradient Descent Optimizer
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
```

Step 8: Initialize

```# Before starting, initialize the variables.  We will 'run' this first.
init = tf.initialize_all_variables()```

Step 9: Launch

```sess = tf.Session()
sess.run(init)```

Step 10: Try to fit the line 250 times

```for step in range(251):
sess.run(train)
#Print once every 20 iterations
if step % 20 == 0:
print(step, sess.run(W), sess.run(b))```

Step 11: Understand the result

The above command will produce the results somewhat like this:

```(0, array([-0.32815421], dtype=float32), array([ 0.71403891], dtype=float32))
(20, array([-0.02378235], dtype=float32), array([ 0.36488634], dtype=float32))
(40, array([ 0.0697251], dtype=float32), array([ 0.31596035], dtype=float32))
(60, array([ 0.09259172], dtype=float32), array([ 0.30399585], dtype=float32))
(80, array([ 0.09818359], dtype=float32), array([ 0.30107], dtype=float32))
(100, array([ 0.09955103], dtype=float32), array([ 0.30035451], dtype=float32))
(120, array([ 0.09988545], dtype=float32), array([ 0.30017954], dtype=float32))
(140, array([ 0.09996723], dtype=float32), array([ 0.30013674], dtype=float32))
(160, array([ 0.09998722], dtype=float32), array([ 0.30012628], dtype=float32))
(180, array([ 0.09999212], dtype=float32), array([ 0.30012372], dtype=float32))
(200, array([ 0.0999933], dtype=float32), array([ 0.3001231], dtype=float32))
(220, array([ 0.09999361], dtype=float32), array([ 0.30012295], dtype=float32))
(240, array([ 0.09999362], dtype=float32), array([ 0.30012295], dtype=float32))```

You can see that it has learned after 220 iterations that the best fit is W: [0.09999362] and b: [0.30012295]. So, the equation of the best line that fits the above points is y = x*0.09999362 + 0.30012295

If you plot this line along with the points, you would get a plot like this:

Practice TenserFlow now on CloudxLab