Функция torch.lu_unpack в PyTorch
Справочное руководство PyTorch torch
torch.lu_unpackЭто функция в PyTorch, используемая для распаковки матриц L, U и P из результата LU-разложения.
Определение функции
torch.lu_unpack(LU_data, LU_pivots, unpack_data=True, out=None)
Parameters:
LU_data(Tensor): Матрица, полученная из LU-разложения.LU_pivots(Tensor): индексы перестановок из LU-разложения.unpack_data(bool, optional): следует ли распаковывать данные. По умолчанию True.out(tuple, optional): Выходной кортеж.
Возвращаемое значение:
tuple: Возвращает кортеж (pivot, L, U).
Пример использования
Пример
import torch
# Создать матрицу
A = torch.tensor([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
[7.0, 8.0, 9.0]])
# LU-разложение
LU, pivots = torch.lu(A)
# Распаковать L, U, P
P, L, U = torch.lu_unpack(LU, pivots)
print("Матрица A:")
print(A)
print("nМатрица перестановок P:")
print(P)
print("nНижняя треугольная матрица L:")
print(L)
print("nВерхняя треугольная матрица U:")
print(U)
print("nПроверка: P @ L @ U =")
print(P @ L @ U)
# Создать матрицу
A = torch.tensor([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
[7.0, 8.0, 9.0]])
# LU-разложение
LU, pivots = torch.lu(A)
# Распаковать L, U, P
P, L, U = torch.lu_unpack(LU, pivots)
print("Матрица A:")
print(A)
print("nМатрица перестановок P:")
print(P)
print("nНижняя треугольная матрица L:")
print(L)
print("nВерхняя треугольная матрица U:")
print(U)
print("nПроверка: P @ L @ U =")
print(P @ L @ U)
Результат вывода:
矩阵 A:
tensor([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
置换矩阵 P:
tensor([[0., 0., 1.],
[1., 0., 0.],
[0., 1., 0.]])
下三角矩阵 L:
tensor([[1.0000, 0.0000, 0.0000],
[0.1429, 1.0000, 0.0000],
[0.5714, 0.5000, 1.0000]])
上三角矩阵 U:
tensor([[7.0000, 8.0000, 9.0000],
[0.0000, 0.8571, 1.7143],
[0.0000, 0.0000, 0.0000]])
验证: P @ L @ U =
tensor([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
Другие расширения