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