TensorFlow - 按轴索引

TensorFlow - Index by axis

我想索引一个任意形状的张量的最后一个轴,除了最后一个是 2。

例如设 x 的形状为 (1,2,2)。最后一个轴的索引

x_0 = x[:, :, 0]    # x_0, x_1 shapes are (1,2)
x_1 = x[:, :, 1]

例如设 x 的形状为 (1,2,3,4,2)。最后一个轴的索引

x_0 = x[:, :, :, :, 0]   # x_0, x_1 shapes are (1,2,3,4)
x_1 = x[:, :, :, :, 1]

我一直找不到任何张量流函数或切片任意形状的用法。

我需要一种通用的索引方法,以便我始终可以访问任何形状张量的最后一个轴。

在那种情况下,tensorflow 中的切片语法与 . You can use the ellipsis 非常相似:

Ellipsis expands to the number of : objects needed for the selection tuple to index all dimensions. In most cases, this means that length of the expanded selection tuple is x.ndim. There may only be a single ellipsis present.

在你的情况下,

x_0 = x[..., 0]

将索引具有任意形状的张量的最后一个轴。

你也可以看看.