Функция torch.chain_matmul в PyTorch
Справочное руководство Pytorch torch
torch.chain_matmulявляется функцией в PyTorch, используемой для вычисления цепного умножения нескольких матриц. Она минимизирует вычислительные затраты, выбирая оптимальный порядок умножения матриц.
Определение функции
torch.chain_matmul(*matrices, out=None)
Parameters:
matrices(Tensor): Входная последовательность матриц.out(Tensor, необязательный): Выходной тензор.
Возвращаемое значение:
torch.Tensor: Возвращает результат умножения всех матриц.
Пример использования
Пример
import torch
# Создать несколько матриц
A = torch.randn(10, 20)
B = torch.randn(20, 30)
C = torch.randn(30, 40)
D = torch.randn(40, 50)
# Цепочное умножение матриц
result = torch.chain_matmul(A, B, C, D)
print("Форма матрицы A:", A.shape)
print("Форма матрицы B:", B.shape)
print("Форма матрицы C:", C.shape)
print("Форма матрицы D:", D.shape)
print("Форма результата:", result.shape)
# Создать несколько матриц
A = torch.randn(10, 20)
B = torch.randn(20, 30)
C = torch.randn(30, 40)
D = torch.randn(40, 50)
# Цепочное умножение матриц
result = torch.chain_matmul(A, B, C, D)
print("Форма матрицы A:", A.shape)
print("Форма матрицы B:", B.shape)
print("Форма матрицы C:", C.shape)
print("Форма матрицы D:", D.shape)
print("Форма результата:", result.shape)
Результат вывода:
矩阵 A 形状: torch.Size([10, 20]) 矩阵 B 形状: torch.Size([20, 30]) 矩阵 C 形状: torch.Size([30, 40]) 矩阵 D 形状: torch.Size([40, 50]) 结果形状: torch.Size([10, 50])
Пример - Использование списка
import torch
# Список матриц
matrices = [torch.randn(10, 20),
torch.randn(20, 30),
torch.randn(30, 40)]
# Использовать список как аргумент
result = torch.chain_matmul(*matrices)
print("Форма результата:", result.shape)
# Список матриц
matrices = [torch.randn(10, 20),
torch.randn(20, 30),
torch.randn(30, 40)]
# Использовать список как аргумент
result = torch.chain_matmul(*matrices)
print("Форма результата:", result.shape)
Другие расширения