寸法が[batch_size, num_rows, num_coordinates]
のテンソルlogits
です(つまり、ロット内の各ロジットはマトリックスです)。私の場合、バッチサイズは2、4行4座標です。TensorFlowで3Dテンソルから行を選択する方法は?
logits = tf.constant([[[10.0, 10.0, 20.0, 20.0],
[11.0, 10.0, 10.0, 30.0],
[12.0, 10.0, 10.0, 20.0],
[13.0, 10.0, 10.0, 20.0]],
[[14.0, 11.0, 21.0, 31.0],
[15.0, 11.0, 11.0, 21.0],
[16.0, 11.0, 11.0, 21.0],
[17.0, 11.0, 11.0, 21.0]]])
第1バッチの第1行と第2行と第2バッチの第2行と第4行を選択したいとします。
indices = tf.constant([[0, 1], [1, 3]])
だから、所望の出力は、私は、この使用してTensorFlowを行うにはどうすればよい
logits = tf.constant([[[10.0, 10.0, 20.0, 20.0],
[11.0, 10.0, 10.0, 30.0]],
[[15.0, 11.0, 11.0, 21.0],
[17.0, 11.0, 11.0, 21.0]]])
は可能でしょうか?私はtf.gather(logits, indices)
を使ってみましたが、期待したものを返せませんでした。ありがとう!
あなたの答えは素晴らしいですが、今日は、あなたが書いている時点ではまだ入手できなかった 'tf.gather_nd'と置き換えることができると思います(私の答えを参照してください) – kaufmanu