如何将 PyTorch 张量分块到具有重叠的指定存储桶大小?

How can I chunk a PyTorch tensor into a specified bucket size with overlap?

具体来说,我有一个形状的张量:torch.Size([1, 16])

我想将其放入 7 个桶中(每个桶 4 个)。示例:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

应该变成:

[[1, 2, 3, 4],
 [3, 4, 5, 6],
 [5, 6, 7, 8],
 [7, 8, 9, 10],
 [9, 10, 11, 12],
 [11, 12, 13, 14],
 [13, 14, 15, 16],
]

如何使用 PyTorch 实现此目的?

看起来像 unfold:

t.unfold(0,4,2)

输出:

tensor([[ 1.,  2.,  3.,  4.],
        [ 3.,  4.,  5.,  6.],
        [ 5.,  6.,  7.,  8.],
        [ 7.,  8.,  9., 10.],
        [ 9., 10., 11., 12.],
        [11., 12., 13., 14.],
        [13., 14., 15., 16.]])