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

• Last Updated : 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:

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

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 module``import` `torch`` ` `# create an 3 D tensor with 8 elements each``a ``=` `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  tensor``print``(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 module``import` `torch`` ` `# create an 3 D tensor with 8 elements each``a ``=` `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  tensor``print``(a)`` ` `# access  all the tensors of 1  dimension ``# and get only 7 values in that dimension``print``(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 module``import` `torch`` ` `# create an 3 D tensor with 8 elements each``a ``=` `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  tensor``print``(a)`` ` `# access  all the tensors of all dimensions``# and get only 3 values in each dimension``print``(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 module``import` `torch`` ` `# create an 3 D tensor with 8 elements each``a ``=` `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  tensor``print``(a)`` ` `# access 8 elements in 1 dimension on all tensors``print``(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]])```

My Personal Notes arrow_drop_up