torch.as_strided¶
- torch.as_strided(input, size, stride, storage_offset=None) Tensor ¶
创建一个视图,该视图是现有 torch.Tensor
input
,并指定size
、stride
和storage_offset
。警告
建议使用其他视图函数,如
torch.Tensor.expand()
,来手动设置视图的步长,而不是使用 as_strided,因为此函数的行为取决于张量存储的实现。构造的存储视图必须仅引用存储中的元素,否则将抛出运行时错误,如果视图“重叠”(多个索引指向内存中的同一元素),则其行为是未定义的。- 参数:
input (Tensor) – 输入张量。
输出张量的形状(元组或整数)
输出张量的步长(元组或整数)
存储偏移量(整数,可选)- 输出张量在底层存储中的偏移量。如果为
None
,则输出张量的存储偏移量将与输入张量匹配。
示例:
>>> 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]])