¿Cómo acceder correctamente a los elementos en un tensor Pytorch 3D?

En este artículo, discutiremos cómo acceder a los elementos en un tensor 3D en Pytorch. PyTorch es una biblioteca de tensores optimizada que se utiliza principalmente para aplicaciones de aprendizaje profundo que utilizan GPU y CPU. Es una de las bibliotecas de aprendizaje automático más utilizadas, otras son TensorFlow y Keras. Python es compatible con el módulo de la antorcha, por lo que para trabajar con esto primero importamos el módulo al espacio de trabajo.

Sintaxis :

antorcha de importación

Podemos crear un vector usando la función torch.tensor()

Sintaxis:

antorcha.tensor([valor1,valor2,.valor n])

Ejemplo 1: código de Python para crear un tensor 3 D y mostrar

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)

Producción:

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]]])

Para acceder a los elementos de un tensor 3-D, se puede utilizar Slicing. Rebanar significa seleccionar los elementos presentes en el tensor usando el operador de rebanado “:”. Podemos dividir los elementos usando el índice de ese elemento en particular.

Nota : la indexación comienza con 0

Sintaxis:

tensor[inicio_posición_tensor:fin_posición_tensor, inicio_dimensión_tensor:fin_dimensión_tensor , inicio_valor_tensor:fin_valor_tensor]

dónde,

  • tensor_position_start : especifica el tensor para comenzar a iterar
  • tensor_position_end : especifica el tensor para detener la iteración
  • tensor_dimension_start : especifica el tensor para iniciar la iteración del tensor en posiciones dadas
  • tensor_dimension_stop : especifica el tensor para detener la iteración del tensor en posiciones determinadas
  • tensor_value_start : especifica la posición de inicio del tensor para iterar los elementos dados en las dimensiones
  • tensor_value_stop : especifica la posición final del tensor para iterar los elementos dados en las dimensiones

A continuación se presentan los diversos ejemplos de la misma.

Ejemplo 2: código de Python para acceder a todos los tensores de 1 dimensión y obtener solo 7 valores en esa dimensión

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])

Producción:

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]]])

Ejemplo 3: código de Python para acceder a todos los tensores de todas las dimensiones y obtener solo 3 valores en cada dimensión

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])

Producción:

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]]])

Ejemplo 4: acceda a 8 elementos en 1 dimensión en todos los tensores

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])

Producción:

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]])

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *