- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# How can Linear Regression be implemented using TensorFlow?

Tensorflow is a machine learning framework that is provided by Google. It is an open−source framework used in conjunction with Python to implement algorithms, deep learning applications and much more. It is used in research and for production purposes.

The ‘tensorflow’ package can be installed on Windows using the below line of code −

pip install tensorflow

Tensor is a data structure used in TensorFlow. It helps connect edges in a flow diagram. This flow diagram is known as the ‘Data flow graph’. Tensors are nothing but multidimensional array or a list. They can be identified using three main attributes −

**Rank**− It tells about the dimensionality of the tensor. It can be understood as the order of the tensor or the number of dimensions in the tensor that has been defined.**Type**− It tells about the data type associated with the elements of the Tensor. It can be a one dimensional, two dimensional or n dimensional tensor.**Shape**− It is the number of rows and columns together.

We will be using the Jupyter Notebook to run these codes. TensorFlow can be installed on Jupyter Notebook using ‘pip install tensorflow’.

Following is an example −

## Example

from __future__ import absolute_import, division, print_function import tensorflow as tf import numpy as np rng = np.random print("The parameters have been randomly defined") learning_rate = 0.02 training_steps = 1000 display_step = 100 X = np.array([3.3,4.43,5.15,6.17,6.9,4.62,9.70,6.81,7.95,3.63, 7.02,11.0,5.33,7.87,5.55,9.77,7.1]) Y = np.array([1.5,2.86,2.1,3.4,1.89,1.478,3.78,2.3456,2.89,1.874, 3.82,3.55,2.0,2.04,2.52,3.94,7.3]) print("The data has been generated") A = tf.Variable(rng.randn(), name="weight") b = tf.Variable(rng.randn(), name="bias") def linear_reg(x): return A * x + b def mean_square_error(y_pred, y_true): return tf.reduce_mean(tf.square(y_pred - y_true)) optimizer = tf.optimizers.SGD(learning_rate) def run_optimization(): with tf.GradientTape() as g: pred = linear_reg(X) loss = mean_square_error(pred, Y) gradients = g.gradient(loss, [A, b]) optimizer.apply_gradients(zip(gradients, [A, b])) print("The data is being trained") for step in range(1, training_steps + 1): run_optimization() if step % display_step == 0: pred = linear_reg(X) loss = mean_square_error(pred, Y) print("step: %i, loss: %f, W: %f, b: %f" % (step, loss, W.numpy(), b.numpy())) print("The visualization of original data and data fit to model") import matplotlib.pyplot as plt plt.plot(X, Y, 'ro', label='Original data') plt.plot(X, np.array(W * X + b), label='Line fit to data') plt.legend() plt.show()

**Code credit** − https://github.com/aymericdamien/TensorFlow-Examples/blob/master/tensorflow_v2/notebooks/2_BasicModels/linear_regression.ipynb

## Output

The parameters have been randomly defined The data has been generated The data is being trained step: 100, loss: 1.540684, W: 0.270616, b: 1.315416 step: 200, loss: 1.448993, W: 0.270616, b: 1.194412 step: 300, loss: 1.445010, W: 0.270616, b: 1.106874 step: 400, loss: 1.443114, W: 0.270616, b: 1.046157 step: 500, loss: 1.442205, W: 0.270616, b: 1.004092 step: 600, loss: 1.441768, W: 0.270616, b: 0.974950 step: 700, loss: 1.441558, W: 0.270616, b: 0.954762 step: 800, loss: 1.441458, W: 0.270616, b: 0.940776 step: 900, loss: 1.441409, W: 0.270616, b: 0.931087 step: 1000, loss: 1.441386, W: 0.270616, b: 0.924374 The visualization of original data and data fit to model

## Explanation

The required packages are imported and aliased.

The learning parameters are defined. The training data is defined using the NumPy package.

The ‘weight’ and ‘bias’ values are randomly initialized. They will be updated to optimal values once the training is complete.

The general format for a linear equation is ‘Ax + b’ where ‘A’ is the ‘weight’ and ‘b’ is the ‘bias’ value.

Function to calculate the mean square error is defined.

The stochastic gradient descent optimizer is also defined.

A function for optimization is defined, that computes gradients and updates the value of weights and bias.

The data is trained for a specified number of steps.

The built model is tested on the validation set.

The predictions are visualized.

- Related Articles
- How can Logistic Regression be implemented using TensorFlow?
- How does linear regression work with Tensorflow in Python?
- Linear Regression using PyTorch?
- Linear Regression using Python?
- How can transfer learning be implemented in Python using Keras?
- How can data be imported to predict the fuel efficiency with Auto MPG dataset (basic regression) using TensorFlow?
- How can Tensorflow be used to compare the linear model and the Convolutional model using Python?
- How can TensorFlow used to train a linear model using Python?
- Explain how Nelder-Mead algorithm can be implemented using SciPy Python?
- How can the ‘Word2Vec’ algorithm be trained using Tensorflow?
- Linear Regression
- Explain how L1 Normalization can be implemented using scikit-learn library in Python?
- Explain how L2 Normalization can be implemented using scikit-learn library in Python?
- How can Tensorflow be used to compose layers using Python?
- How can Unicode operations be performed in Tensorflow using Python?