torch.as_strided

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

使用指定的sizestridestorage_offset,为现有的torch.Tensor input创建一个视图。

警告

建议使用其他视图函数,如torch.Tensor.expand(),而不是手动使用as_strided设置视图的步长。因为此函数的行为依赖于张量存储的具体实现。构造的存储视图必须仅引用存储中的元素,否则会抛出运行时错误。如果视图是“重叠”的(即多个索引指向内存中的同一元素),其行为将未定义。

参数
  • input (Tensor) – 需要输入的张量。

  • size (元组整数) — 输出张量的形状

  • stride (元组整数) – 输出张量的步长

  • 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]])
本页目录