评价此页

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 后端(没有步长概念的后端)上抛出错误,并且结果将取决于内存中的当前布局。构造的视图只能引用张量存储中的元素,否则将抛出运行时错误。如果生成的视图是“重叠的”(多个索引引用内存中的同一元素),则对此视图进行原地操作的行为是未定义的(并且可能不会抛出运行时错误)。

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

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

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

  • storage_offset (整数, 可选) – 输出张量底层存储中的偏移量。如果为 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]])