2016-11-24 11 views
13

で配列をソートするのは、私が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], .. 

私は3番目の列で、この配列をソートしたいと思います。これはどうすればいいですか? tf.nn.top_k()を使用して各列を個別に並べ替えることができます。これにより、ソートされた値とそれぞれのインデックスが得られます。この3番目の列のインデックスを使って他の列を並べ替えることができますが、並べ替え操作を見つけることはできません。私は、グラフ(無Pythonのペテン)のものを維持したいと仮定すると、

  • 方法は、I TensorFlowのソート/順序(上の配列)ですか?
  • 再注文のためのインデックスがある場合、TensorFlowでどのように並べ替えるのですか?
+1

私はあなたの質問を理解していれば、これは[未解決の問題](https://github.com/tensorflow/tensorflow/issues/288)のようです。まだ何もありませんが、悪化すると最悪になり、「トップ」になります。 – erip

+0

3番目の列でソートしたい場合や、インデックスのリストで並べ替える場合は機能しません。 – TimZaman

+1

[tf.gather](https://www.tensorflow.org/versions/r0.11/api_docs/python/array_ops.html#gather)を使用して注文することができますか?おそらく? – Lunaweaver

答えて

7

次作品:

a = tf.constant(...) # the array 
reordered = tf.gather(a, tf.nn.top_k(a[:, 2], k=4).indices)