Cómo verificar si un tensor es contiguo o no en PyTorch

En este artículo vamos a ver cómo comprobar si un tensor es contiguo o no en PyTorch.

Un tensor contiguo podría ser un tensor cuyos componentes se almacenan en un orden contiguo sin dejar ningún espacio vacío entre ellos. Podemos verificar si un tensor es contiguo o no usando el método Tensor.is_contiguous().

Método Tensor.is_contiguous()

Este método nos ayuda a identificar si un tensor es contiguo o no. Este método devuelve True si un tensor es contiguo, de lo contrario devolverá False. Use la siguiente sintaxis para comprender cómo verificar si un tensor es contiguo o no en PyTorch.

Sintaxis – Tensor.is_contiguous()

Ejemplo 1:

En el siguiente programa vamos a comprobar si un tensor es contiguo o no.

Python3

# import torch library
import torch
  
# create torch tensors
tens_1 = torch.tensor([1., 2., 3., 4., 5.])
  
# display tensors
print("\n First Tensor - ", tens_1)
  
# check this tensor is contiguous or not
output_1 = tens_1.is_contiguous()
  
# display output
print("\n This tensor is contiguous - ", output_1)

Producción:

 

Ejemplo 2:

En el siguiente programa, vamos a ver si la transposición de un tensor es contigua o no.

Python3

# import torch library
import torch
  
# define a torch tensor
tens = torch.tensor([[10., 20., 30.],
                     [40., 50., 60.]])
  
# transpose of the above defined tensor
tens_transpose = tens.transpose(0, 1)
  
# display tensors
print("\n Original Tensor \n", tens)
print("\n Transpose of original Tensor \n",
      tens_transpose)
  
# check if a tensor and it's transpose are 
# contiguous or not
Output_1 = tens.is_contiguous()
print("\n Original Tensor is contiguous - ", Output_1)
  
Output_2 = tens_transpose.is_contiguous()
print("\n Transpose of original Tensor is contiguous - ", Output_2)

Producción:

 

Publicación traducida automáticamente

Artículo escrito por mukulsomukesh 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 *