torch.diagonal_scatter
-
torch.diagonal_scatter(input, src, offset=0, dim1=0, dim2=1) → Tensor -
Вставляет значения тензора
srcвinputвдоль диагональных элементовinputотносительноdim1иdim2.Эта функция возвращает тензор с новым хранилищем данных; она не возвращает представление.
Аргумент
offsetопределяет, какую диагональ следует использовать:- Если
offset= 0, используется главная диагональ. - Если
offset> 0, используется диагональ выше главной. - Если
offset< 0, используется диагональ ниже главной.
- Параметры:
-
- input (Tensor) – входной тензор. Должен иметь не менее двух измерений.
-
src (Tensor) – тензор, который нужно вставить в
input. - offset (int, необязательный) – какую диагональ использовать. По умолчанию: 0 (главная диагональ).
- dim1 (int, необязательный) – первое измерение, относительно которого берётся диагональ. По умолчанию: 0.
- dim2 (int, необязательный) – второе измерение, относительно которого берётся диагональ. По умолчанию: 1.
Примечание
srcдолжен иметь подходящий размер, чтобы его можно было вставить вinput. В частности, он должен иметь ту же форму, что иtorch.diagonal(input, offset, dim1, dim2)Примеры:
>>> a = torch.zeros(3, 3) >>> a tensor([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]]) >>> torch.diagonal_scatter(a, torch.ones(3), 0) tensor([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) >>> torch.diagonal_scatter(a, torch.ones(2), 1) tensor([[0., 1., 0.], [0., 0., 1.], [0., 0., 0.]]) - Если
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.diagonal_scatter.html