快捷方式

torch.diag_embed

torch.diag_embed(input, offset=0, dim1=-2, dim2=-1) Tensor

建立一個 tensor,其特定 2D 平面(由 dim1dim2 指定)的對角線由 input 填充。為了方便建立批次對角矩陣,預設選擇返回的 tensor 的最後兩個維度形成的 2D 平面。

引數 offset 控制考慮哪個對角線

  • 如果 offset = 0,則是主對角線。

  • 如果 offset > 0,則在主對角線之上。

  • 如果 offset < 0,則在主對角線之下。

新矩陣的大小將計算出來,以使指定的對角線尺寸與最後一個輸入維度的大小一致。請注意,對於 offset 不等於 00 的情況,dim1dim2 的順序很重要。交換它們等同於改變 offset 的符號。

使用相同的引數對該函式的輸出應用 torch.diagonal() 會產生一個與輸入相同的矩陣。然而,torch.diagonal() 有不同的預設維度,因此需要明確指定。

引數
  • input (Tensor) – 輸入 tensor。必須至少為 1 維。

  • offset (int, optional) – 要考慮的對角線。預設值:0 (主對角線)。

  • dim1 (int, optional) – 用於指定對角線的第一個維度。預設值:-2。

  • dim2 (int, optional) – 用於指定對角線的第二個維度。預設值:-1。

示例

>>> a = torch.randn(2, 3)
>>> torch.diag_embed(a)
tensor([[[ 1.5410,  0.0000,  0.0000],
         [ 0.0000, -0.2934,  0.0000],
         [ 0.0000,  0.0000, -2.1788]],

        [[ 0.5684,  0.0000,  0.0000],
         [ 0.0000, -1.0845,  0.0000],
         [ 0.0000,  0.0000, -1.3986]]])

>>> torch.diag_embed(a, offset=1, dim1=0, dim2=2)
tensor([[[ 0.0000,  1.5410,  0.0000,  0.0000],
         [ 0.0000,  0.5684,  0.0000,  0.0000]],

        [[ 0.0000,  0.0000, -0.2934,  0.0000],
         [ 0.0000,  0.0000, -1.0845,  0.0000]],

        [[ 0.0000,  0.0000,  0.0000, -2.1788],
         [ 0.0000,  0.0000,  0.0000, -1.3986]],

        [[ 0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000]]])

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源