- 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 to apply linear transformation to the input data in PyTorch?

We can apply a linear transformation to the input data using the **torch.nn.Linear()** module. It supports input data of type **TensorFloat32**. This
is applied as a layer in the deep neural networks to perform linear transformation.
The linear transform used −

**y = x * W ^ T + b**

Here **x** is the input data, **y** is the output data after linear transform. W is the weight matrix and **b** is biases. The weights **W** have shape **(out_features,
in_features)** and biases **b** have shape (out_features). They are initialized randomly and updated during the training of a Neural Network.

## Syntax

torch.nn.Linear(in_features, out_features)

## Parameters

**in_features**- It is the size of the input sample.**out_features**- It is the size of output sample.

## Steps

You could use the following steps to apply linear transformation to input data −

Import the required library. In all the following examples, the required Python library is

**torch**. Make sure you have already installed it.

import torch

Define input

**tensor**and print it.

input = torch.randn(2,3) print("Input Tensor:

",input)

Define the Linear transform using suitable

**in_features**and**out_features**.

linear = nn.Linear(in_features, out_features)

Apply the above-defined linear transform to the input data. And optionally, assign the output to a new variable.

output = linear(input)

Print the linear transformed tensor.

print("Transformed Tensor:

",output)

## Example 1

# Import the required library import torch import torch.nn as nn # torch.nn.Linear(in_features, out_features, bias=True, device=None, dtype=None) in_features = 3 out_features = 5 linear = nn.Linear(in_features, out_features) input = torch.randn(2,3) print("Input Tensor:

",input) print("Size of Input Tensor:

",input.size()) # Compute the linear transformation output = linear(input) print("Transformed Tensor:

",output) print("Size of Transformed Tensor:

",output.size())

## Output

Input Tensor: tensor([[-0.0921, 0.1992, -1.4930], [-0.0827, 0.0926, -0.1487]]) Size of Input Tensor: torch.Size([2, 3]) Transformed Tensor: tensor([[-0.5778, -0.3074, -0.5339, -0.3443, -0.1688], [-0.3149, -0.2189, -0.1795, -0.3617, -0.0839]], grad_fn=<AddmmBackward>) Size of Transformed Tensor: torch.Size([2, 5])

Notice that the size has changed after the linear transformation.

## Example 2

# Import the required library import torch import torch.nn as nn # torch.nn.Linear(in_features, out_features, bias=True, device=None, dtype=None) in_features = 3 out_features = 5 linear = nn.Linear(in_features, out_features, bias=False) input = torch.randn(2,3) print("Input Tensor:

",input) print("Size of Input Tensor:

",input.size()) # Compute the linear transformation output = linear(input) print("Transformed Tensor:

",output) print("Size of Transformed Tensor:

",output.size())

## Output

Input Tensor: tensor([[-0.6691, -1.6172, -0.9707], [-0.4425, 1.4376, -0.8004]]) Size of Input Tensor: torch.Size([2, 3]) Transformed Tensor: tensor([[ 0.3554, 1.3869, 0.5136, -0.1801, -0.5858], [ 0.3262, 0.2073, -0.8602, -0.0161, 0.5233]], grad_fn=<MmBackward>) Size of Transformed Tensor: torch.Size([2, 5])

Notice how the size changed after the linear transformation.

- Related Articles
- How to apply rectified linear unit function element-wise in PyTorch?
- PyTorch – FiveCrop Transformation
- How to apply a 2D convolution operation in PyTorch?
- How to apply a 2D Average Pooling in PyTorch?
- How to apply XSL transformation on an XML document?
- PyTorch – How to perform random affine transformation of an image?
- How to apply Affine Transformation on an image in OpenCV Python?
- How to apply a 2D transposed convolution operation in PyTorch?
- How to apply a 2D Max Pooling in PyTorch?\n
- How to pad the input tensor boundaries with zero in PyTorch?
- How to apply linear gradient (color) to a node in JavaFX?
- How to apply a 2D or 3D transformation to an element with CSS
- How to flatten an input tensor by reshaping it in PyTorch?
- How to pad the input tensor boundaries with a constant value in PyTorch?
- Linear Regression using PyTorch?