Функция PyTorch cat используется для объединения заданного порядка тензоров seq в заданном измерении, и тензоры либо должны иметь одинаковую форму.

Синтаксис:

torch.cat(tensors, dim=0, out=None)

Ниже приведены параметры функции PyTorch cat:

  • tensors: тензор является параметром любой последовательности тензоров Python одного типа, и предоставленные непустые тензоры должны иметь одинаковую форму, за исключением измерения кошки.
  • dim=0: dim используется как измерение, по которому объединяются тензоры.
  • out=None: Out определяется как выходной тензор, а значение out по умолчанию — None.

Итак, мы поняли функцию cat Pytorch, используя функцию torch.cat().

Содержание

Пример

Функция torch.cat() используется для объединения двух или более тензоров вдоль существующей оси.

В следующем коде мы импортируем необходимую библиотеку, например импорт факела.

  • c = torch.randn(4, 6): Здесь мы объявляем переменную с помощью функции torch.randn().
  • a=torch.cat((c, c, c), 0): Здесь мы вызываем функцию torch.cat().
  • print(a) используется для печати переменной a с помощью функции print().
# Import the torch library
import torch
# Declaring the variable
c = torch.randn(4, 6)
print(c)
# Calling the cat() function
a=torch.cat((c, c, c), 0)
b=torch.cat((c, c, c), 1)
# Print the output
print(a)
print(b)

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения кота PyTorch печатаются на экране.

функция torch.cat()

Как использовать функцию, используя размерность -1

В этом разделе мы узнаем о функции PyTorch cat, использующей размерность -1 в Python.

Здесь мы используем функцию torch.cat(), которая объединяет два или более тензоров по строкам, используя dim как -1.

В следующем коде мы импортируем необходимую библиотеку, например import torch.

  • cattens1 = torch.Tensor([[12, 13, 14], [15, 16, 17]]): Здесь мы объявляем переменную cattensor с помощью функции torch.tensor().
  • print(«Cattensor1 \n», cattens1): Здесь мы печатаем первый тензор с помощью функции print().
  • cattensor = torch.cat((cattens1, cattens2), -1): Здесь мы вызываем функцию torch.cat().
  • print(«Объединить тензоры в измерении -1 \n», cattensor): Здесь мы печатаем объединенный тензор в измерении -1.
# import torch library
import torch
  
# Declaring the tensors
cattens1 = torch.Tensor([[12, 13, 14], [15, 16, 17]])
cattens2 = torch.Tensor([[18,19, 20], [21, 22, 23]])
  
# print first tensors
print("Cattensor1 \n", cattens1)
  
# print second tensor
print("Cattensor2 \n", cattens2)
  
# Calling the torch.cat() function and join tensor in -1 dimension
cattensor = torch.cat((cattens1, cattens2), -1)
print("Concatenate the tensors in the -1 dimension \n", cattensor)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что функция PyTorch cat, использующая значения размера как -1, выводится на экран.

Функция cat, использующая размерность 0

Здесь мы используем функцию torch.cat(), которая объединяет два или более тензора по столбцам, используя размерность как 0.

В следующем коде мы импортируем необходимую библиотеку, например импорт факела.

  • c1 = torch.tensor([2,4,6,8]): здесь мы объявляем переменную с помощью функции torch.tensor().
  • print(«cat1:\n», c1) используется для печати тензора, который мы должны создать выше, с помощью функции print().
  • c=torch.cat((c1,c2,c3,c4),dim=0 ): здесь мы вызываем функцию torch.cat() для объединения тензоров.
  • print(c) используется для печати вывода с помощью функции print().
# Import library
import torch
# Declaring the variable
c1 = torch.tensor([2,4,6,8])
c2 = torch.tensor([3,6,9,12])
c3 = torch.tensor([4,8,12,16])
c4 = torch.tensor([5,10,15,20])
# Print the above created tensors
print("cat1:\n", c1)
print("cat2:\n", c2)
print("cat3:\n", c3)
print("cat4:\n", c4)
# Calling the torch.cat() function
c=torch.cat(
   (c1,c2,c3,c4)
    ,dim=0
)
# Print the output
print(c)

 

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что функция PyTorch cat, использующая значения размера как 0, выводится на экран.

Как использовать 3D-тензор, который объединяется по измерениям 0 и -1

Здесь мы используем функцию torch.cat(), которая объединяет два или более тензоров по столбцам и по строкам, используя размеры 0 и -1.

В следующем коде мы импортируем необходимую библиотеку, например import torch.

  • c1 = torch.Tensor([[2,4],[3,6]]) используется для создания тензора с помощью функции torch.tensor().
  • print(«cat1:\n», c1) используется для печати вышеуказанного тензора, который мы создали с помощью функции print().
  • c = torch.cat((c1,c2,c3), 0): Здесь мы вызываем функцию torch.cat() вместе с нулевым измерением.
  • print(“Объединить тензоры в нулевом измерении”) используется для печати конкатенированных тензоров в нулевом измерении.
  • c = torch.cat((c1,c2,c3), -1): здесь мы вызываем функцию torch.cat() вместе с измерением -1.
# import required library
import torch

# create the tensors
c1 = torch.Tensor([[2,4],[3,6]])
c2 = torch.Tensor([[4,8],[5,10]])
c3 = torch.Tensor([[6,12],[7,14]])

# print above created tensors
print("cat1:\n", c1)
print("cat2:\n", c2)
print("cat3:\n", c3)

# Print the tensor in the 0 dimension
print("Concatenate the tensors in the 0 dimension")
# Calling the torch.cat() function
c = torch.cat((c1,c2,c3), 0)
print("c:\n", c)

print("Concatenate the tensors in the -1 dimension")
c = torch.cat((c1,c2,c3), -1)
print("c:\n", c)

В приведенном ниже выводе мы видим, что 3d-тензор PyTorch объединяется(cat) по значениям размеров 0 и -1, напечатанным на экране.

3D-тензор PyTorch объединяется по измерениям 0 и -1

Сравнение функций cat() и stack()

Функция torch.cat() используется для объединения заданного порядка тензоров seq в заданном измерении, и тензоры либо должны иметь одинаковую форму.

В следующем коде мы импортируем необходимую библиотеку, например импорт факела.

  • c1 = torch.tensor([2,4,6,8]): здесь мы объявляем тензор с помощью функции torch.tensor().
  • c=torch.cat((c1,c2,c3,c4),dim=0 ): Здесь мы вызываем функцию cat().
  • print(c) используется для печати вывода с помощью функции print().
# Import torch
import torch
# Declaring the tensors
c1 = torch.tensor([2,4,6,8])
c2 = torch.tensor([3,6,9,12])
c3 = torch.tensor([4,8,12,16])
c4 = torch.tensor([5,10,15,20])
print(c1,c2,c3,c4)
# Calling the cat() function
c=torch.cat(
   (c1,c2,c3,c4)
    ,dim=0
)
# Print the output
print(c)

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения кота PyTorch печатаются на экране.

cat в PyTorch

Функция PyTorch torch.stack() используется для объединения тензора с одинаковым размером и формой.

В следующем коде мы импортируем необходимую библиотеку, например импорт факела.

  • s1 = torch.tensor([2,4,6,8]) используется для объявления тензора с помощью функции torch.tensor().
  • s=torch.stack((s1,s2,s3,s4),dim=0 ): Здесь мы вызываем функцию torch.stack().
# Import torch
import torch
# Declaring the tensors
s1 = torch.tensor([2,4,6,8])
s2 = torch.tensor([3,6,9,12])
s3 = torch.tensor([4,8,12,16])
s4 = torch.tensor([5,10,15,20])
# Calling stack() function
s=torch.stack(
   (s1,s2,s3,s4)
    ,dim=0
)
# Print the output
print(s)

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что значения стека PyTorch() печатаются на экране.

Стек в PyTorch

Вот как мы понимаем разницу между функциями cat() и stack().

Добавить комментарий