torch.linalg.tensorsolve
-
torch.linalg.tensorsolve(A, B, dims=None, *, out=None) → Tensor[исходный код] -
Вычисляет решение
Xсистемыtorch.tensordot(A, X) = B.Если
mявляется произведением первыхB.ndimизмеренийA, аn— произведением остальных измерений, эта функция ожидает, чтоmиnбудут равны.Возвращаемый тензор
xудовлетворяет условиюtensordot(A, x, dims=x.ndim) ==B.xимеет формуA[B.ndim:].Если указан
dims,Aбудет преобразован к формеA = movedim(A, dims, range(len(dims) - A.ndim + 1, 0))
Поддерживаются входные данные типов float, double, cfloat и cdouble.
См. также
torch.linalg.tensorinv()вычисляет мультипликативную обратную величину дляtorch.tensordot().- Параметры:
-
-
A (Tensor) – тензор, для которого нужно найти решение. Его форма должна удовлетворять условию
prod(A.shape[:B.ndim]) == prod(A.shape[B.ndim:]). -
B (Tensor) – тензор формы
A.shape[:B.ndim]. -
dims (Tuple[int], optional) – измерения
A, которые нужно переместить. ЕслиNone, измерения не перемещаются. По умолчанию:None.
-
A (Tensor) – тензор, для которого нужно найти решение. Его форма должна удовлетворять условию
- Именованные аргументы:
-
out (Tensor, optional) – выходной тензор. Игнорируется, если
None. По умолчанию:None. - Вызывает исключение:
-
RuntimeError – если преобразованный
A.view(m, m)сm, как указано выше, необратим или произведение первыхindизмерений не равно произведению остальных измерений.
Примеры:
>>> A = torch.eye(2 * 3 * 4).reshape((2 * 3, 4, 2, 3, 4)) >>> B = torch.randn(2 * 3, 4) >>> X = torch.linalg.tensorsolve(A, B) >>> X.shape torch.Size([2, 3, 4]) >>> torch.allclose(torch.tensordot(A, X, dims=X.ndim), B) True >>> A = torch.randn(6, 4, 4, 3, 2) >>> B = torch.randn(4, 3, 2) >>> X = torch.linalg.tensorsolve(A, B, dims=(0, 2)) >>> X.shape torch.Size([6, 4]) >>> A = A.permute(1, 3, 4, 0, 2) >>> A.shape[B.ndim:] torch.Size([6, 4]) >>> torch.allclose(torch.tensordot(A, X, dims=X.ndim), B, atol=1e-6) True
© 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.tensorsolve.html