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


PyTorch is a popular open−source machine learning framework that provides efficient tensor operations on both CPUs and GPUs. A tensor is a multi−dimensional array in PyTorch, and it is the fundamental data structure used for storing and manipulating data in PyTorch.

In this context, a 3D tensor is a tensor with three dimensions, and it can be represented as a cube−like structure with rows, columns, and depth. To access elements in a 3D PyTorch tensor, you need to know its dimensions and the indices of the elements you want to access.

The indices of a tensor are specified using square brackets ([]), and you can use one or more indices separated by commas to access elements in a tensor. The index values start at 0, and the last index value is always one less than the size of that dimension.

Now that we know theoretically how to access elements in a 3D tensor, let's make use of examples.

Example 1

Accessing a specific element in a 3D tensor.

Consider the code shown below.

import torch

# create a 3D tensor with dimensions 2x3x4
tensor_3d = torch.tensor([
    [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],
    [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]]
])

# access the element at row 1, column 2, and depth 3
element = tensor_3d[1, 2, 3]

# print the element
print(element)

Explanation

  • We first create a 3D tensor with dimensions 2x3x4 and initialise it with some values.

  • We then use square brackets to access the element at row 1, column 2, and depth 3.

  • Finally, we print the value of the element, which is 20.

Output

20

Example 2

Extracting a sub−tensor from a 3D tensor

Consider the code shown below.

import torch

# create a 3D tensor with dimensions 2x3x4
tensor_3d = torch.tensor([
    [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],
    [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]]
])

# extract a sub-tensor starting at row 0, column 1, and depth 1
sub_tensor = tensor_3d[:, 1:, 1:]

# print the sub-tensor
print(sub_tensor)

Explanation

  • We first create a 3D tensor with dimensions 2x3x4 and initialise it with some values.

  • We then use slicing to extract a sub−tensor starting at row 0, column 1, and depth 1.

  • The sub−tensor includes all elements from row 0 to the end, column 1 to the end, and depth 1 to the end.

  • Finally, we print the sub−tensor, which includes the values 6, 7, 8, 10, 11, 12, 18, 19, 20, 22, 23, and 24.

Output

tensor([[[ 6,  7,  8],
         [10, 11, 12]],

        [[18, 19, 20],
         [22, 23, 24]]])

Example 3

Using a boolean mask to access specific elements in a 3D tensor

Consider the code shown below.

import torch

# create a 3D tensor with dimensions 2x3x4
tensor_3d = torch.tensor([
    [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],
    [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]]
])

# create a boolean mask with the same dimensions as the tensor
mask = tensor_3d % 2 == 0

# use the mask to access specific elements in the tensor
even_elements = tensor_3d[mask]

# print the even elements
print(even_elements)

Explanation

  • We first create a 3D tensor with dimensions 2x3x4 and initialize it with some values.

  • We then create a boolean mask with the same dimensions as the tensor, where the value is True if the corresponding element in the tensor is even, and False otherwise.

  • We use the mask to access specific elements in the tensor by passing the mask as an index to the tensor. This returns a 1D tensor containing all the even elements in the tensor.

  • Finally, we print the even elements, which are 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, and 24.

Output

tensor([ 2,  4,  6,  8, 10, 12, 14, 16, 18, 20, 22, 24])

Conclusion

In conclusion, accessing elements in a 3D PyTorch tensor is an important skill for working with multidimensional data in PyTorch. In this article, we have seen how to access specific elements in a 3D tensor using indexing and slicing, as well as how to use a boolean mask to select specific elements based on a condition. It is important to understand the shape of the tensor and the position of the element to be accessed before attempting to access it.

Updated on: 03-Aug-2023

344 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements