torch.linalg.householder_product
-
torch.linalg.householder_product(A, tau, *, out=None) → Tensor[source] -
Вычисляет первые
nстолбцов произведения матриц Хаусхолдера.Пусть — это или , а — матрица со столбцами для , причем . Обозначим через вектор, полученный обнулением первых компонент вектора и присваиванием значения
1его -й компоненте. Для вектора , где , эта функция вычисляет первые столбцов матрицыгде — единичная матрица размерности
m, а — сопряжённое транспонирование, если является комплексным, и транспонирование, если имеет вещественные значения. Выходная матрица имеет тот же размер, что и входная матрицаA.Дополнительные сведения см. в разделе Представление ортогональных или унитарных матриц.
Поддерживаются входные данные с типами float, double, cfloat и cdouble. Также поддерживаются пакеты матриц; если входные данные являются пакетами матриц, выходные данные имеют те же размеры пакета.
См. также
torch.geqrf()можно использовать вместе с этой функцией для полученияQиз разложенияqr().torch.ormqr()— родственная функция, которая вычисляет произведение матрицы на произведение матриц Хаусхолдера. Однако эта функция не поддерживает autograd.Предупреждение
Вычисление градиентов корректно только в том случае, если . Если это условие не выполняется, ошибка не возникнет, но вычисленный градиент может содержать
NaN.- Параметры:
- Именованные аргументы:
-
out (Tensor, необязательный) – выходной тензор. Игнорируется, если
None. По умолчанию:None. - Исключения:
-
RuntimeError – если
Aне удовлетворяет требованиюm >= nилиtauне удовлетворяет требованиюn >= k.
Примеры:
>>> A = torch.randn(2, 2) >>> h, tau = torch.geqrf(A) >>> Q = torch.linalg.householder_product(h, tau) >>> torch.dist(Q, torch.linalg.qr(A).Q) tensor(0.) >>> h = torch.randn(3, 2, 2, dtype=torch.complex128) >>> tau = torch.randn(3, 1, dtype=torch.complex128) >>> Q = torch.linalg.householder_product(h, tau) >>> Q tensor([[[ 1.8034+0.4184j, 0.2588-1.0174j], [-0.6853+0.7953j, 2.0790+0.5620j]], [[ 1.4581+1.6989j, -1.5360+0.1193j], [ 1.3877-0.6691j, 1.3512+1.3024j]], [[ 1.4766+0.5783j, 0.0361+0.6587j], [ 0.6396+0.1612j, 1.3693+0.4481j]]], dtype=torch.complex128)
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.linalg.householder_product.html