Tensorflow 2:根据二维张量对三维张量排序

2024-07-02 04:48:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个三维张量,有批次,序列,特征尺寸(N,s,e)。这是一个概率分布序列。然后我想根据与最高预测对应的整数对它们进行排序。这么说

x_probabs = 3D tensor (ex: [[[0.5, 0.1, 0.4], [0.3, 0.3, 0.4], [0.1,
0.8, 0.1]]]; # shape N s e

x = tf.argmax(x_probabs, axis=-1) = [[0, 2, 1]]; # shape N s

或者另一个例子是

x_probabs=[[[0.6, 0.1, 0.1, 0.1, 0.1], [0.1,0.1,0.1,0.1,0.6], [0.1,0.1,0.1,0.6,0.1]]];

x = [[0, 4, 3]];

如果我想订购x,我可以做ordered_x = tf.sort(x, axis=-1),那么为了获得订购,我可以做indices_sorted_x = tf.argsort(x, axis=-1)。我想对x_概率应用相同的排序,但我不知道该怎么做,我尝试过{},但它不起作用,因为索引用于二维张量,而不是三维张量。我被困在这里了

下面是第一个示例的外观

sorted_x = [[0,1,2]];
sorted_x_probabs = [[[0.5, 0.1, 0.4],[0.1,
    0.8, 0.1],[0.3, 0.3, 0.4]]];

这是第二个例子

sorted_x = [[0,3,4]];
sorted_x_probabs = [[[0.6, 0.1, 0.1, 0.1, 0.1],[0.1,0.1,0.1,0.6,0.1],[0.1,0.1,0.1,0.1,0.6]]];

事先非常感谢


Tags: 排序尺寸tf序列整数特征例子ex