Ton*_*ony 6 numpy pytorch tensor
例如,如果我有一个 2D 张量 X,我可以对 X[:,1:]; 进行切片。如果我有一个 3D 张量 Y,那么我可以对像 Y[:,:,1:] 这样的最后一个维度进行类似的切片。
当给定未知维度的张量 Z 时,进行切片的正确方法是什么?一个numpy数组怎么样?
谢谢!
PyTorch 支持类似 NumPy 的索引,因此您可以使用Ellipsis( ...)
>>> z[..., -1:]
Run Code Online (Sandbox Code Playgroud)
示例:
>>> x # (2,2) tensor
tensor([[0.5385, 0.9280],
[0.8937, 0.0423]])
>>> x[..., -1:]
tensor([[0.9280],
[0.0423]])
Run Code Online (Sandbox Code Playgroud)
>>> y # (2,2,2) tensor
tensor([[[0.5610, 0.8542],
[0.2902, 0.2388]],
[[0.2440, 0.1063],
[0.7201, 0.1010]]])
>>> y[..., -1:]
tensor([[[0.8542],
[0.2388]],
[[0.1063],
[0.1010]]])
Run Code Online (Sandbox Code Playgroud)
Ellipsis( ...) 扩展:为选择元组索引所有维度所需的对象数。在大多数情况下,这意味着扩展选择元组的长度为x.ndim. 可能只存在一个省略号。