評價此頁

torch.as_strided#

torch.as_strided(input, size, stride, storage_offset=None) Tensor#

建立一個現有 torch.Tensor input 的檢視,具有指定的 sizestridestorage_offset

警告

建議優先使用其他檢視函式,例如 torch.Tensor.view()torch.Tensor.expand(),而不是手動使用 as_strided 設定檢視的步幅。因為此函式在不支援步幅概念的非標準 PyTorch 後端上會引發錯誤,並且結果將取決於記憶體中的當前佈局。構造的檢視只能引用 Tensor 儲存中的元素,否則將丟擲執行時錯誤。如果生成的檢視是“重疊的”(多個索引指向記憶體中的同一元素),則在該檢視上進行原地操作的行為是未定義的(並且可能不會引發執行時錯誤)。

引數
  • input (Tensor) – 輸入張量。

  • size (tupleints) – 輸出張量的形狀

  • stride (tupleints) – 輸出張量的步幅

  • storage_offset (int, 可選) – 輸出張量在底層儲存中的偏移量。如果為 None,則輸出張量的 storage_offset 將與輸入張量匹配。

示例

>>> x = torch.randn(3, 3)
>>> x
tensor([[ 0.9039,  0.6291,  1.0795],
        [ 0.1586,  2.1939, -0.4900],
        [-0.1909, -0.7503,  1.9355]])
>>> t = torch.as_strided(x, (2, 2), (1, 2))
>>> t
tensor([[0.9039, 1.0795],
        [0.6291, 0.1586]])
>>> t = torch.as_strided(x, (2, 2), (1, 2), 1)
tensor([[0.6291, 0.1586],
        [1.0795, 2.1939]])