Open In App

How to Compute the Pseudoinverse of a Matrix in PyTorch

Last Updated : 01 May, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we are going to discuss how to compute the pseudoinverse of a matrix in Python using PyTorch.

torch.linalg.pinv() method

torch.linalg.pinv() method accepts a matrix and a batch of matrices as input and returns a new tensor with the pseudoinverse of the input matrix. if the input is a batch of matrices then the output tensor also has the same batch dimensions. This method also supports the input of float, double, cfloat, and cdouble dtypes. The below syntax is used to compute the pseudoinverse of a matrix.

Syntax: torch.linalg.pinv(inp)

Parameters:

  • inp: Where inp is a Matrix of Order M x N or a batch of matrices.

Returns: it will returns a new tensor with the pseudoinverse of the input matrix.

Example 1:

In this example, we will understand how to compute the pseudoinverse of a matrix in PyTorch.

Python3




# import torch libraries
import torch
  
# creating a matrix or 4x3
inp = torch.tensor([[0.1150, -1.1121
                     0.2334, -0.2321],
                    [1.2753, 1.0699,
                     0.2335, 1.0177],
                    [0.3942, -1.0498
                     -0.0486, 0.3240]])
  
# Display matrix
print("\n Input matrix: \n", inp)
  
# compute pseudoinverse of above defined matrix
output = torch.linalg.pinv(inp)
  
# Display result
print("\n After Compute pseudoinverse of matrix: \n",
      output)


Output:

 

Example 2:

In this example, we will compute the pseudoinverse of a batch of matrices in PyTorch.

Python3




# import torch libraries
import torch
  
# creating a batch matrix
inp = torch.tensor([[[1.1232, 0.2341, 0.1323],
                     [-1.0562, 0.1897, 0.1276]],
                    [[-1.0200, -1.1121, 1.0321],
                     [1.0887, -1.0564, 0.1798]]])
  
# Display batch of matrix
print("\n Batch of matrix: \n", inp)
  
# compute pseudoinverse of above defined matrix
output = torch.linalg.pinv(inp)
  
# Display result
print("\n After Compute pseudoinverse: \n",
      output)


Output:

 



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads