Функция torch.cholesky в PyTorch
Справочное руководство PyTorch torch
torch.choleskyЭто функция в PyTorch, используемая для вычисления разложения Холецкого симметричной положительно определённой матрицы. Разложение Холецкого раскладывает положительно определённую матрицу A в A = L * L^T, где L — нижняя треугольная матрица.
Определение функции
torch.cholesky(A, upper=False, out=None)
Parameters:
A(Tensor): Входная симметричная положительно определённая матрица.upper(bool, optional): Если True, возвращает верхнюю треугольную матрицу; в противном случае возвращает нижнюю треугольную матрицу. Значение по умолчанию — False.out(Tensor, необязательный): Выходной тензор.
Возвращаемое значение:
torch.Tensor: Возвращает нижнюю (или верхнюю) треугольную матрицу разложения Холецкого.
Пример использования
Пример
import torch
# Создать симметричную положительно определённую матрицу
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Разложение Холецкого
L = torch.cholesky(A)
print("Исходная матрица A:")
print(A)
print("nРазложение Холецкого (нижняя треугольная матрица L):")
print(L)
print("nПроверка: L @ L.T = ")
print(L @ L.T)
# Создать симметричную положительно определённую матрицу
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Разложение Холецкого
L = torch.cholesky(A)
print("Исходная матрица A:")
print(A)
print("nРазложение Холецкого (нижняя треугольная матрица L):")
print(L)
print("nПроверка: L @ L.T = ")
print(L @ L.T)
Результат вывода:
原矩阵 A:
tensor([[4., 2., 2.],
[2., 5., 3.],
[2., 3., 6.]])
Cholesky 分解 (下三角矩阵 L):
tensor([[2.0000, 0.0000, 0.0000],
[1.0000, 2.0000, 0.0000],
[1.0000, 1.0000, 2.0000]])
验证: L @ L.T =
tensor([[4., 2., 2.],
[2., 5., 3.],
[2., 3., 6.]])
Пример - Возврат верхней треугольной матрицы
import torch
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Возврат верхней треугольной матрицы
U = torch.cholesky(A, upper=True)
print("Верхняя треугольная матрица U:")
print(U)
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Возврат верхней треугольной матрицы
U = torch.cholesky(A, upper=True)
print("Верхняя треугольная матрица U:")
print(U)
Другие расширения