How to Correctly Access Elements in a 3D Pytorch Tensor?

23 Aug, 2021
In this article, we will discuss how to access elements in a 3D Tensor in Pytorch. PyTorch is an optimized tensor library majorly used for Deep Learning applications using GPUs and CPUs. It is one of the widely used Machine learning libraries, others being TensorFlow and Keras. The python supports the torch module, so to work with this first we import the module to the workspace.
Syntax:
import torch
We can create a vector by using the torch.tensor() function
Syntax:
torch.tensor([value1,value2,.value n])
Example 1: Python code to create an 3 D Tensor and display
Python3
# import torch moduleimport torch  # create an 3 D tensor with 8 elements eacha = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8],                   [10, 11, 12, 13, 14, 15, 16, 17]],                  [[71, 72, 73, 74, 75, 76, 77, 78],                   [81, 82, 83, 84, 85, 86, 87, 88]]])  # display actual  tensorprint(a)
Output:
tensor([[[ 1,  2,  3,  4,  5,  6,  7,  8],
        [10, 11, 12, 13, 14, 15, 16, 17]],
       [[71, 72, 73, 74, 75, 76, 77, 78],
        [81, 82, 83, 84, 85, 86, 87, 88]]])
To access elements from a 3-D tensor Slicing can be used. Slicing means selecting the elements present in the tensor by using “:” slice operator. We can slice the elements by using the index of that particular element.
Note: Indexing starts with 0
Syntax:
tensor[tensor_position_start:tensor_position_end, tensor_dimension_start:tensor_dimension_end , tensor_value_start:tensor_value_end]
where,
tensor_position_start – Specifies the Tensor to start iterating
tensor_position_end – Specifies the Tensor to stop iterating
tensor_dimension_start – Specifies the Tensor to start the iteration of tensor in given positions
tensor_dimension_stop– Specifies the Tensor to stop the iteration of tensor in given positions
tensor_value_start – Specifies the start position of the  tensor to iterate the elements given in dimensions
tensor_value_stop – Specifies the end position of the tensor to iterate the elements given in dimensions
Given below are the various examples for the same.
Example 2: Python code to access  all the tensors of 1  dimension and get only 7 values in that dimension
Python3
# import torch moduleimport torch  # create an 3 D tensor with 8 elements eacha = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8],                    [10, 11, 12, 13, 14, 15, 16, 17]],                   [[71, 72, 73, 74, 75, 76, 77, 78],                    [81, 82, 83, 84, 85, 86, 87, 88]]])  # display actual  tensorprint(a)  # access  all the tensors of 1  dimension # and get only 7 values in that dimensionprint(a[0:1, 0:1, :7])
Output:
tensor([[[ 1,  2,  3,  4,  5,  6,  7,  8],
        [10, 11, 12, 13, 14, 15, 16, 17]],
       [[71, 72, 73, 74, 75, 76, 77, 78],
        [81, 82, 83, 84, 85, 86, 87, 88]]])
tensor([[[1, 2, 3, 4, 5, 6, 7]]])
Example 3: Python code to access  all the tensors of all dimensions and get only 3 values in each dimension
Python3
# import torch moduleimport torch  # create an 3 D tensor with 8 elements eacha = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8],                   [10, 11, 12, 13, 14, 15, 16, 17]],                   [[71, 72, 73, 74, 75, 76, 77, 78],                    [81, 82, 83, 84, 85, 86, 87, 88]]])  # display actual  tensorprint(a)  # access  all the tensors of all dimensions# and get only 3 values in each dimensionprint(a[0:1, 0:2, :3])
Output:
tensor([[[ 1,  2,  3,  4,  5,  6,  7,  8],
        [10, 11, 12, 13, 14, 15, 16, 17]],
       [[71, 72, 73, 74, 75, 76, 77, 78],
        [81, 82, 83, 84, 85, 86, 87, 88]]])
tensor([[[ 1,  2,  3],
        [10, 11, 12]]])
Example 4: access 8 elements in 1 dimension on all tensors
Python3
# import torch moduleimport torch  # create an 3 D tensor with 8 elements eacha = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8],                    [10, 11, 12, 13, 14, 15, 16, 17]],                   [[71, 72, 73, 74, 75, 76, 77, 78],                    [81, 82, 83, 84, 85, 86, 87, 88]]])  # display actual  tensorprint(a)  # access 8 elements in 1 dimension on all tensorsprint(a[0:2, 1, 0:8])
Output:
tensor([[[ 1,  2,  3,  4,  5,  6,  7,  8],
        [10, 11, 12, 13, 14, 15, 16, 17]],
       [[71, 72, 73, 74, 75, 76, 77, 78],
        [81, 82, 83, 84, 85, 86, 87, 88]]])
tensor([[10, 11, 12, 13, 14, 15, 16, 17],
       [81, 82, 83, 84, 85, 86, 87, 88]])
Picked
Python-PyTorch
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Python Classes and Objects
Python OOPs Concepts
Introduction To PYTHON
How to drop one or multiple columns in Pandas Dataframe
Python | os.path.join() method
How To Convert Python Dictionary To JSON?
Check if element exists in list in Python
Python | datetime.timedelta() function
Python | Get unique values from a list