¿Cómo unir tensores en PyTorch?

En este artículo vamos a ver cómo unir dos o más tensores en PyTorch.

Podemos unir tensores en PyTorch usando las funciones torch.cat() y torch.stack(). Ambas funciones nos ayudan a unir los tensores, pero torch.cat() se usa básicamente para concatenar la secuencia dada de tensores en la dimensión dada. mientras que la función torch.stack() nos permite apilar los tensores y podemos unir dos o más tensores en diferentes dimensiones como -1 dimensión y 0 dimensiones,

Función torch.cat(): Cat() en PyTorch se usa para concatenar dos o más tensores en la misma dimensión.

Sintaxis: torch.cat ( (tens_1, tens_2, — , tens_n), dim=0, *, out=Ninguno)

Función torch.stack(): Esta función también concatena una secuencia de tensores pero sobre una nueva dimensión, aquí también los tensores deben ser del mismo tamaño.

Sintaxis: torch.stack ( (tens_1, tens_2, — , tens_n), dim=0, *, out=Ninguno)

Ejemplo 1: 

El siguiente programa es para concatenar una secuencia de tensores usando la función torch.cat().

Python3

# import torch library
import torch
  
# define tensors
tens_1 = torch.Tensor([[11, 12, 13], [14, 15, 16]])
tens_2 = torch.Tensor([[17, 18, 19], [20, 21, 22]])
  
# print first tensors
print("tens_1 \n", tens_1)
  
# print second tensor
print("tens_2 \n", tens_2)
  
# call torch,cat() function
# join tensor in -1 dimension
tens = torch.cat((tens_1, tens_2), -1)
print("join tensors in the -1 dimension \n", tens)
  
# join tensor in 0 dimension
tens = torch.cat((tens_1, tens_2), 0)
print("join tensors in the 0 dimension \n", tens)

Producción:

Ejemplo 2:

El siguiente programa es para concatenar una secuencia de tensores usando la función torch.stack().

Python3

# import torch library
import torch
  
# define tensors
tens_1 = torch.Tensor([[10,20,30],[40,50,60]])
tens_2 = torch.Tensor([[70,80,90],[100,110,120]])
  
# print first tensors
print("tens_1 \n", tens_1)
  
# print second tensor
print("tens_2 \n", tens_2)
  
# call torch,cat() function
# join tensor in -1 dimension
tens = torch.stack((tens_1, tens_2), -1)
print("join tensors in the -1 dimension \n", tens)
  
# join tensor in 0 dimension
tens = torch.stack((tens_1, tens_2), 0)
print("join tensors in the 0 dimension \n", tens)

Producción:

Ejemplo 3:

El siguiente programa es para unir (apilar) tensores 2D para crear un tensor 3D.

Python3

# import required library
import torch
  
# define some tensors
tens_1 = torch.Tensor([[1, 2], [3, 4]])
tens_2 = torch.Tensor([[5, 6], [7, 8]])
tens_3 = torch.Tensor([[9, 10], [11, 12]])
  
# display tensors
print("\n First Tensor :\n", tens_1)
print("\n Second Tensor :\n", tens_2)
print("\n Third Tensor :\n", tens_3)
  
# Join (stacked) tensors in -1 dimension
tens = torch.stack((tens_1, tens_2, tens_3), -1)
print("\n tensors in -1 dimension \n", tens)
  
# Join (stacked) tensors in 0 dimension
tens = torch.stack((tens_1, tens_2, tens_3), 0)
print("\n tensors in 0 dimension \n", tens)

Producción:

Ejemplo 4: 

El siguiente programa es para saber cómo se concatenan los tensores 2D a lo largo de las dimensiones 0 y -1. La concatenación en la dimensión 0 aumenta el número de filas.

Python3

# import required library
import torch
  
# define some tensors
tens_1 = torch.Tensor([[1, 2], [3, 4]])
tens_2 = torch.Tensor([[5, 6], [7, 8]])
tens_3 = torch.Tensor([[9, 10], [11, 12]])
  
# display tensors
print("First Tensor :\n", tens_1)
print("\nSecond Tensor :\n", tens_2)
print("\nThird Tensor :\n", tens_3)
  
# join tensors in the 0 dimension
tens = torch.cat((tens_1, tens_2, tens_3), 0)
print("\n join tensors in the 0 dimension \n", tens)
  
# join tensors in the -1 dimension
tens = torch.cat((tens_1, tens_2, tens_3), -1)
print("\n join tensors in the -1 dimension \n", tens)

Producción:

Ejemplo 5: 

El siguiente programa es para saber cómo se apilan los tensores 1D y el tensor final es un tensor 2D.

Python3

# import required library
import torch
  
# define some tensors
tens_1 = torch.Tensor([1, 2, 3])
tens_2 = torch.Tensor([4, 5, 6])
tens_3 = torch.Tensor([7, 8, 9])
  
# display tensors
print("First Tensor :\n", tens_1)
print("\nSecond Tensor :\n", tens_2)
print("\nThird Tensor :\n", tens_3)
  
# join tensors in the 0 dimension
tens = torch.stack((tens_1, tens_2, tens_3), 0)
print("\n join tensors in the 0 dimension \n", tens)
  
# join tensors in the -1 dimension
tens = torch.stack((tens_1, tens_2, tens_3), -1)
print("\n join tensors in the -1 dimension \n", tens)

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 *