評價此頁

torch.diagonal_scatter#

torch.diagonal_scatter(input, src, offset=0, dim1=0, dim2=1) Tensor#

src 張量的值嵌入到 input 張量中,沿著 input 張量的對角線元素,相對於 dim1dim2

此函式返回一個具有新儲存的張量;它不返回檢視。

引數 offset 控制要考慮的對角線

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

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

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

引數
  • input (Tensor) – 輸入張量。必須至少是二維的。

  • src (Tensor) – 要嵌入到 input 中的張量。

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

  • dim1 (int, optional) – 用於取對角線的第一個維度。預設為 0。

  • dim2 (int, optional) – 用於取對角線的第二個維度。預設為 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.]])