在TensorFlow中对数组排序
问题内容:
假设我在TensorFlow中有一个数组:
[ 0.12300211, 0.51767069, 0.13886075, 0.55363625],
[ 0.47279349, 0.50432992, 0.48080254, 0.51576483],
[ 0.84347934, 0.44505221, 0.88839239, 0.48857492],
[ 0.93650454, 0.43652734, 0.96464157, 0.47236174], ..
我想按第三列对该数组进行排序。我该怎么做呢?我可以使用分别对每一列进行排序tf.nn.top_k()
,这给了我排序后的值和相应的索引。我可以使用第三列的索引对其他列进行重新排序,但是找不到重新排序的操作。
假设我想保持事物状态(无Python恶作剧):
- 如何在TensorFlow中排序(上述数组)?
- 当我有要重新排序的索引时,如何在TensorFlow中重新排序?
问题答案:
以下作品:
a = tf.constant(...) # the array
reordered = tf.gather(a, tf.nn.top_k(a[:, 2], k=4).indices)