たとえば、2DテンソルXがある場合、スライスX [:、1:];を実行できます。3DテンソルYがある場合、Y [:、:、1:]のような最後の次元に対して同様のスライスを行うことができます。
未知の次元のテンソルZが与えられたときにスライスを行う正しい方法は何ですか?numpy配列はどうですか?
ありがとう!
PyTorchはNumPyのようなインデックス作成をサポートしているため、Ellipsis
(...
)を使用できます
>>> z[..., -1:]
例:
>>> x # (2,2) tensor
tensor([[0.5385, 0.9280],
[0.8937, 0.0423]])
>>> x[..., -1:]
tensor([[0.9280],
[0.0423]])
>>> 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]]])
Ellipsis
(...
)は:
、選択タプルがすべてのディメンションにインデックスを付けるために必要なオブジェクトの数に展開されます。ほとんどの場合、これは拡張選択タプルの長さがx.ndim
。であることを意味します。省略記号が1つしかない場合があります。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加