YouTip LogoYouTip

Pytorch Torch Diagonal_Scatter

# PyTorch torch.diagonal_scatter Function * * PyTorch torch Reference Manual](#) `torch.diagonal_scatter` is a PyTorch function used to scatter values to diagonal positions of a tensor. It scatters values from `src` to the specified diagonal of `input`. ### Function Definition torch.diagonal_scatter(input, src, offset=0, dim1=0, dim2=1) **Parameters**: * `input` (Tensor): The input tensor, which is the tensor to be modified. * `src` (Tensor): The source tensor containing values to scatter to diagonal positions. * `offset` (int, optional): Diagonal offset. Positive values indicate upper diagonals, negative values indicate lower diagonals, 0 indicates the main diagonal. * `dim1` (int, optional): First dimension, default is 0. * `dim2` (int, optional): Second dimension, default is 1. **Returns**: * `torch.Tensor`: Returns the modified tensor. * * * ## Usage Examples ## Example import torch # Create input tensor input= torch.zeros(4,4) src = torch.tensor([1,2,3,4]) # Scatter values to main diagonal output = torch.diagonal_scatter(input, src) print("Input tensor:") print(input) print("nSource tensor:") print(src) print("nScattered to main diagonal:") print(output) Output will be: Input tensor: tensor([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]])Source tensor: tensor([1, 2, 3, 4])Scattered to main diagonal: tensor([[1., 0., 0., 0.], [0., 2., 0., 0.], [0., 0., 3., 0.], [0., 0., 0., 4.]]) ## Example import torch # Create input tensor input= torch.zeros(4,4) src = torch.tensor([1,2,3]) # Scatter values to upper diagonal (offset=1) output = torch.diagonal_scatter(input, src, offset=1) print("Scattered to upper diagonal (offset=1):") print(output) # Scatter values to lower diagonal (offset=-1) output2 = torch.diagonal_scatter(input, src, offset=-1) print("nScattered to lower diagonal (offset=-1):") print(output2) Output will be: Scattered to upper diagonal (offset=1): tensor([[0., 1., 0., 0.], [0., 0., 2., 0.], [0., 0., 0., 3.], [0., 0., 0., 0.]])Scattered to lower diagonal (offset=-1): tensor([[0., 0., 0., 0.], [1., 0., 0., 0.], [0., 2., 0., 0.], [0., 0., 3., 0.]]) ## Example import torch # Using diagonal in 3D tensor input= torch.zeros(3,4,4) src = torch.tensor([10,20,30]) #
← Pytorch Torch DigammaPytorch Torch Diagflat β†’