按列对矩阵进行排序

Sorting a matrix by column

我有一个如下所示的矩阵:

[[5,2],
[4,3],
[3,4]]

使用命令

tf.tensor([...])

我想用索引为 0 的列作为矩阵,这样它看起来像这样:

[[3,4],
[4,3],
[5,2]]

我如何使用 Tensorflow.js 来做到这一点?

你可以用简单的 javaScript:

let arr = [[5,2], [4,3], [3,4]];

let result = arr.sort((a, b) => a[0] - b[0]);
console.log(result);

查看示例,张量在第一个轴上排序。

目前tensorflow.js中还没有tf.sort。但为了达到同样的目的,我们可以在其第一个轴上对张量进行切片,然后对其进行排序并获取索引。对于后者,我们可以使用 tf.gather

对初始张量进行排序
a = tf.tensor2d([[3,4], [4,3],[5,2]])
firstAxis = a.gather([0], 1).reshape([-1]);
ind = tf.topk(firstAxis, a.shape[0]).indices
a.gather(ind.reverse(), 0).print()