Метод stack() PyTorch используется для объединения серии тензоров вместе с новым измерением. Эта функция используется для объединения тензоров того же размера и формы.
Синтаксис:
torch.stack(tensors, dim=0, out=None)
Параметры:
- tensors: Тензор определяется как серия тензоров с новыми измерениями.
- dim: dim — это вставляемое измерение, а его целое число находится в диапазоне от 0 до количества измерений входных тензоров.
- out: Out — это параметр, который описывает выходной тензор.
- Пример
- Как использовать тензоры
- 2D-тензор для создания стека для создания 3D-тензора
- Тензор 1d сложен 2d в качестве окончательного тензора
- Стек для отображения ошибки, когда входной тензор не имеет одинаковой формы
Пример
Метод torch.stack(), в котором все тензоры должны быть одинакового размера и использоваться для объединения или конкатенации серии тензоров вместе с новым измерением.
В следующем коде мы импортируем модуль факела, например import torch.
- stackt1 = torch.tensor([1.,3.,6.,10.]): здесь мы создаем тензор с помощью функции torch.tensor().
- print(«Tensor stackt1:», stackt1) используется для печати созданного тензора с помощью функции print().
- s = torch.stack((stackt1,stackt2)): здесь мы вызываем функцию stack().
- print(s): Здесь мы печатаем окончательный тензор после соединения с помощью функции print().
# importing torch import torch # Creating a tensors stackt1 = torch.tensor([1.,3.,6.,10.]) stackt2 = torch.tensor([2.,7.,9.,13.]) # printing above created tensors print("Tensor stackt1:", stackt1) print("Tensor ystackt2:", stackt2) # join above tensor using "torch.stack()" print("Join the tensors:") s = torch.stack((stackt1,stackt2)) # print final tensor after join print(s) print("Join the tensors dimension 0:") s = torch.stack((stackt1,stackt2), dim = 0) print(s) print("join tensors dimension 1:") s = torch.stack((stackt1,stackt2), dim = 1) print(s)
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения стека PyTorch печатаются на экране.
Как использовать тензоры
Тензор стека PyTorch определяется как метод, который объединяет последовательность двух или более тензоров по новому измерению.
В следующем коде мы импортируем библиотеку факела как импорт факела.
- stacktensor_1 = torch.Tensor([[20,30,40],[50,60,70]]): Здесь мы описываем переменную с помощью функции torch.tensor().
- print(«stacktensor_1 \n», stacktensor_1) используется для печати первого тензора с помощью функции print().
- stacktensor = torch.stack((stacktensor_1, stacktensor_2), -1): здесь мы вызываем функцию torch.stack().
- print(«Объединить тензоры в измерении -1 \n», stacktensor) используется для печати значения тензора стека с помощью функции print().
# import torch library import torch # define tensors stacktensor_1 = torch.Tensor([[20,30,40],[50,60,70]]) stacktensor_2 = torch.Tensor([[40,50,60],[70,80,90]]) # print first tensors print("stacktensor_1 \n", stacktensor_1) # print second tensor print("stacktensor_2 \n", stacktensor_2) # Calling the torch.stack() function join tensor in -1 dimension stacktensor = torch.stack((stacktensor_1, stacktensor_2), -1) print("Join the tensors in the -1 dimension \n", stacktensor) # Join the tensor in 0 dimension stacktensor = torch.stack((stacktensor_1, stacktensor_2), 0) print("Join the tensors in the 0 dimension \n", stacktensor)
Выход:
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения тензора стека PyTorch печатаются на экране.
2D-тензор для создания стека для создания 3D-тензора
В этом разделе мы узнаем о 2D-тензоре PyTorch, который нужно объединить в стек для создания 3D-тензора в Python.
Здесь мы используем двумерный тензор, объединили все тензоры вместе и создали трехмерный тензор.
В следующем коде мы импортируем библиотеку факела, например import torch.
- stacktens1 = torch.Tensor([[2, 4], [4, 8]]): Здесь мы объявляем переменную с помощью функции torch.tensor().
- print(«\n Stack First Tensor :\n», stacktens1) используется для печати первого тензора стека с помощью функции print().
- stacktens = torch.stack((stacktens1, stacktens2, stacktens3), -1): здесь мы имеем сложенный тензор в измерении -1.
- print(«\n тензоры в -1 измерении \n», stacktens) используется для печати тензора в -1 измерении с помощью функции print().
- stacktens = torch.stack((stacktens1, stacktens2, stacktens3), 0): здесь мы складываем тензоры в нулевом измерении.
# import library import torch # declaring some tensors stacktens1 = torch.Tensor([[2, 4], [4, 8]]) stacktens2 = torch.Tensor([[3, 4], [5, 10]]) stacktens3 = torch.Tensor([[8, 16], [9, 18]]) # Display the tensors print("\n Stack First Tensor :\n", stacktens1) print("\n Stack Second Tensor :\n", stacktens2) print("\n Stack Third Tensor :\n", stacktens3) # stacked tensors in -1 dimension stacktens = torch.stack((stacktens1, stacktens2, stacktens3), -1) print("\n tensors in -1 dimension \n", stacktens) # stacked tensors in 0 dimension stacktens = torch.stack((stacktens1, stacktens2, stacktens3), 0) print("\n tensors in 0 dimension \n", stacktens)
Выход:
В приведенном ниже выводе вы можете видеть, что 2D-тензор PyTorch должен быть сложен для создания значений трехмерного тензора, которые печатаются на экране.
Тензор 1d сложен 2d в качестве окончательного тензора
Здесь мы генерируем двумерный тензор как окончательный тензор из одномерного тензора PyTorch с помощью функции torch.stack().
В следующем коде мы импортируем необходимую библиотеку, например импорт факела.
- stacktens1 = torch.Tensor([2, 4, 6]): здесь мы определяем тензор с помощью функции torch.tensor().
- print(» Первый тензор стека:\n», stacktens1) используется для печати первого тензора стека с помощью функции print().
- stacktens = torch.stack((stacktens1, stacktens2, stacktens3), 0): здесь мы вызываем функцию stack().
# import required library import torch # Define some tensors stacktens1 = torch.Tensor([2, 4, 6]) stacktens2 = torch.Tensor([3, 6, 9]) stacktens3 = torch.Tensor([4, 8, 12]) # Display the tensors print(" Stack First Tensor :\n", stacktens1) print("\nStack Second Tensor :\n", stacktens2) print("\n Stack Third Tensor :\n", stacktens3) # Stack the tensors in the 0 dimension stacktens = torch.stack((stacktens1, stacktens2, stacktens3), 0) print("\n Join the tensors in the 0 dimension \n", stacktens) # Stack the tensors in the -1 dimension stacktens = torch.stack((stacktens1, stacktens2, stacktens3), -1) print("\n Join the tensors in the -1 dimension \n", stacktens)
Параметры:
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что 1d-тензор PyTorch сложен, и генерируем 2d-тензор в качестве окончательного тензора, а значения печатаются на экране.
Стек для отображения ошибки, когда входной тензор не имеет одинаковой формы
Здесь мы используем стек PyTorch, который может показать ошибку, когда входной тензор не имеет похожей формы.
Код:
В следующем коде мы импортируем необходимую библиотеку, например import torch.
- stacktens1 = torch.tensor([1., 3., 6., 10.]): Здесь мы создаем тензор стека с помощью функции torch.tensor().
- print(«Tensor stacktens:», stacktens1) используется для печати тензорного стека с помощью функции print().
- s = torch.stack((stacktens1, stacktens2)): здесь мы вызываем функцию stack().
# importing torch import torch # Creating the stack tensors stacktens1 = torch.tensor([1., 3., 6., 10.]) stacktens2 = torch.tensor([2., 7., 9.]) # Printing the tensors print("Tensor stacktens:", stacktens1) print("Tensor stac:", stacktens2) # Stack the tensor using "torch.stack()" print("Stack the tensors:") s = torch.stack((stacktens1, stacktens2)) # Print the final tensor after join print(s) print("Stack the tensors dimension 0:") s = torch.stack((stacktens1, stacktens2), dim=0) print(s) print("Stack the tensors dimension 1:") s = torch.stack((stacktens1, stacktens2), dim=1) print(s)
Выход:
После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что ошибка отображается, когда входной тензор не имеет той же формы.