tf.gather_nd
Tensorflow での高次元テンソルのインデックス作成とスライスについて、直感的に説明したり、さらに例を挙げたりしていただけますか?
私は読んだAPIしかし、非常に簡潔にまとめられているため、関数の概念を理解するのが難しいと感じます。
ベストアンサー1
さて、次のように考えてみましょう。
それらのスライスを取得するために、提供されたテンソルにインデックスを付けるインデックス値のリストを提供しています。提供するインデックスの最初の次元は、実行する各インデックス用です。テンソルは単なるリストのリストであると仮定しましょう。
[[0]] は、指定されたテンソルのインデックス 0 にある特定のスライス (リスト) を 1 つ取得することを意味します。次のようになります。
[tensor[0]]
[[0], [1]] は、次のようにインデックス 0 と 1 の 2 つの特定のスライスを取得することを意味します。
[tensor[0], tensor[1]]
では、テンソルが 1 次元以上であればどうなるでしょうか? 同じことを行います。
[[0, 0]] は、0番目のリストのインデックス [0,0] にあるスライスを1つ取得することを意味します。次のようになります。
[tensor[0][0]]
[[0, 1], [2, 3]] は、指定されたインデックスと次元で 2 つのスライスを返すことを意味します。次のようになります。
[tensor[0][1], tensor[2][3]]
それが意味を成すといいのですが。Python でリストのリストに対してこれを行うとどうなるかを説明するために、Python インデックスを使用してみました。