TensorFlow - 按轴索引

TensorFlow - Index by axis

提问人:kt-kbr 提问时间:7/28/2021 更新时间:7/28/2021 访问量:188

问:

我想索引到具有任意形状的张量的最后一个轴,除了最后一个轴是 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 函数或用法。

我需要一个通用的方法来索引,这样我就可以随时访问任何形状张量的最后一个轴。

TensorFlow 索引 切片 TensorFlow2.x numpy

评论


答:

0赞 Lescurel 7/28/2021 #1

tensorflow 中的切片语法与 非常相似。在这种情况下,您可以使用省略号

省略号扩展为选择元组索引所有维度所需的对象数。在大多数情况下,这意味着扩展选择元组的长度为 。可能只存在一个省略号。:x.ndim

就您而言,

x_0 = x[..., 0]

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

您还可以查看问题的答案:numpy 中的切片 (:) 和省略号 (...) 运算符有什么区别?