Wednesday, September 3, 2025
HomeLanguagesChange view of Tensor in PyTorch

Change view of Tensor in PyTorch

In this article, we will learn how to change the shape of tensors using the PyTorch view function. We will also look at the multiple ways in which we can change the shape of the tensors. Also, we can use the view function to convert lower-dimensional matrices to higher dimensions.

What is the necessary condition to use the PyTorch view() function on a tensor?

As long as the number of elements in your original tensor is the same as the number of elements that must be there to form a matrix of the desired shape you can use the view function. For example, we have a tensor of shape, 1 x 16 we can convert it to 4 x 4, 2 x 2 x 4 but not into the shape of 2 x 4 x 4 because this tensor needs 32 elements but the input tensor has only 16.

How to apply the view() function on PyTorch tensors?

Example 1: Python program to create a tensor with 10 elements and view with 5 rows and 2 columns and vice versa.

Python3




# importing torch module
import torch
 
# create one dimensional tensor 10 elements
a = torch.FloatTensor([10, 20, 30, 40, 50, 1, 2, 3, 4, 5])
 
# view tensor in 5 rows and 2 columns
print(a.view(5, 2))
 
# view tensor in 2 rows and 5 columns
print(a.view(2, 5))


Output:

tensor([[10., 20.],
        [30., 40.],
        [50.,  1.],
        [ 2.,  3.],
        [ 4.,  5.]])
tensor([[10., 20., 30., 40., 50.],
        [ 1.,  2.,  3.,  4.,  5.]])

Example 2: In this example, we will see how can we use -1 for one of the dimensions of the desired tensors shape.

Python3




# importing torch module
import torch
 
# create one dimensional tensor 10 elements
a = torch.FloatTensor([10, 20, 30, 40, 50, 1, 2, 3, 4, 5])
 
# view tensor in 5 rows
print(a.view(5, -1))
 
# view tensor in 5 columns
print(a.view(-1, 5))


Output:

tensor([[10., 20.],
        [30., 40.],
        [50.,  1.],
        [ 2.,  3.],
        [ 4.,  5.]])
tensor([[10., 20., 30., 40., 50.],
        [ 1.,  2.,  3.,  4.,  5.]])

When the weight matrices or shapes of the input and output of deep neural networks become confusing then passing -1 for one of the dimensions saves us from all the mind-boggling shapes of the tensors.

How to use the view() function to obtain more than two-dimensional tensors?

In the below example, we will see how to get a three or more-dimensional vector using the view function. This function helps a lot while handling image data as they are three-dimensional having RGB channels. Also, when we make a batch of these images it increases to four dimensions.

Python3




# importing torch module
import torch
import numpy as np
 
# create one dimensional tensor having 18 elements
a = torch.FloatTensor(np.arange(18))
 
# view tensor in 2 x 3 x 3
print(a.view(2, 3, 3))


Output:

tensor([[[ 0.,  1.,  2.],
         [ 3.,  4.,  5.],
         [ 6.,  7.,  8.]],

        [[ 9., 10., 11.],
         [12., 13., 14.],
         [15., 16., 17.]]])
Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32260 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6625 POSTS0 COMMENTS
Nicole Veronica
11795 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11855 POSTS0 COMMENTS
Shaida Kate Naidoo
6746 POSTS0 COMMENTS
Ted Musemwa
7023 POSTS0 COMMENTS
Thapelo Manthata
6694 POSTS0 COMMENTS
Umr Jansen
6714 POSTS0 COMMENTS