Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
How to find the transpose of a tensor in PyTorch?
To transpose a tensor, we need two dimensions to be transposed. If a tensor is 0-D or 1-D tensor, the transpose of the tensor is same as is. For a 2-D tensor, the transpose is computed using the two dimensions 0 and 1 as transpose(input, 0, 1).
Syntax
To find the transpose of a scalar, a vector or a matrix, we can apply the first syntax defined below.
And for any dimensional tensor, we can apply the second syntax.
For
Tensor.t() torch.t(input)
For any dimensional tensor,
Tensor.transpose(dim0, dim1) or torch.transpose(input, dim0, dim1)
Parameters
input – It's a PyTorch tensor to be transposed.
dim0 – It's the first dimension to be transposed.
dim1 – It's the second dimension to be transposed.
Steps
Import the torch library. Make sure you have it already installed.
import torch
Create a PyTorch tensor and print the tensor. Here, we have created a 3×3 tensor.
t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Tensor:<br>", t)
Find the transpose of the defined tensor using any of the above defined syntax and optionally assign the value to a new variable.
transposedTensor = torch.transpose(t, 0, 1)
Print the transposed tensor.
print("Transposed Tensor:<br>", transposedTensor)
Example 1
# Python program to find transpose of a 2D tensor # import torch library import torch # define a 2D tensor A = torch.rand(2,3) print(A) # compute the transpose of the above tensor print(A.t()) # or print(torch.t(A)) print(A.transpose(0, 1)) # or print(torch.transpose(A, 0, 1))
Output
tensor([[0.0676, 0.2984, 0.6766], [0.6200, 0.5874, 0.4150]]) tensor([[0.0676, 0.6200], [0.2984, 0.5874], [0.6766, 0.4150]]) tensor([[0.0676, 0.6200], [0.2984, 0.5874], [0.6766, 0.4150]])
Example 2
# Python program to find transpose of a 3D tensor
# import torch library
import torch
# create a 3D tensor
A = torch.tensor([[[1,2,3],[3,4,5]],
[[5,6,7],[1,2,2]],
[[1,2,4],[1,2,5]]])
print("Original Tensor A:<br>",A)
print("Size of tensor:",A.size())
# print(A.t()) --> Error
# compute the transpose of the tensor
transposeA = torch.transpose(A, 0,1)
# other way to compute the transpose
# transposeA = A.transpose(0,1)
print("Transposed Tensor:<br>",transposeA)
print("Size after transpose:",transposeA.size())
Output
Original Tensor A: tensor([[[1, 2, 3], [3, 4, 5]], [[5, 6, 7], [1, 2, 2]], [[1, 2, 4], [1, 2, 5]]]) Size of tensor: torch.Size([3, 2, 3]) Transposed Tensor: tensor([[[1, 2, 3], [5, 6, 7], [1, 2, 4]], [[3, 4, 5], [1, 2, 2], [1, 2, 5]]]) Size after transpose: torch.Size([2, 3, 3])
