torch.diagonal¶
- torch.diagonal(input, offset=0, dim1=0, dim2=1) Tensor ¶
傳回
input
的部分檢視,其對角線元素相對於dim1
和dim2
作為維度附加到形狀的末端。參數
offset
控制要考慮哪個對角線如果
offset
= 0,則為主對角線。如果
offset
> 0,則在主對角線上方。如果
offset
< 0,則在主對角線下方。
對此函數的輸出應用具有相同引數的
torch.diag_embed()
會產生一個對角矩陣,其對角線元素與輸入相同。 但是,torch.diag_embed()
具有不同的預設維度,因此需要明確指定這些維度。- 參數
注意
若要取得批次對角線,請傳入 dim1=-2, dim2=-1。
範例
>>> a = torch.randn(3, 3) >>> a tensor([[-1.0854, 1.1431, -0.1752], [ 0.8536, -0.0905, 0.0360], [ 0.6927, -0.3735, -0.4945]]) >>> torch.diagonal(a, 0) tensor([-1.0854, -0.0905, -0.4945]) >>> torch.diagonal(a, 1) tensor([ 1.1431, 0.0360]) >>> x = torch.randn(2, 5, 4, 2) >>> torch.diagonal(x, offset=-1, dim1=1, dim2=2) tensor([[[-1.2631, 0.3755, -1.5977, -1.8172], [-1.1065, 1.0401, -0.2235, -0.7938]], [[-1.7325, -0.3081, 0.6166, 0.2335], [ 1.0500, 0.7336, -0.3836, -1.1015]]])