2016-08-09 14 views
0

私はテンソルtf.shape(X) == [M, N, N]とインデックスのセットtf.shape(IDX) == [N, N]を持っています。テンソルtf.shape(Y) = [N, N]は、最初の次元のインデックスIDXを使用して、Xのスライスと等しくなりますか?私。 Y[i, j] = X[IDX[i, j], i, j]すべてi,j = 1..Nです。 私はtf.gather_ndと遊ぶことを試みたが、結果なし:(インデックスによるテンソルによるスライシング

答えて

2

アップデート2016年10月12日としている:。

tensorflowバージョン0.11のよう

、最大1することができますnumpyのと同じようにテンソルへのインデックス

a = tf.Variable([9,10,11]) 
b = tf.constant([[1,2,3,4],[5,6,7,8]]) 
a = b[0,1:] 

グラデーションもインデックスでサポートされています。


あなたはすでに?

を試したのは何

私が報告したtf.gather_ndのバグがあるようです。 レスポンスは

最近ではgather_nd(ディメンションよりも少ないインデックス)の部分インデックスのサポートが最近追加されました。あなたはTensorFlowのバージョンを使用していますが、各インデックステンソルは正確にテンソルディメンションの数を持たなければなりません。コードはHEADで動作するはずです。

したがって、0.10以上のバージョンgather_ndは、好きなように動作するはずです。

ただし、以下の本はそう、あなたが、現時点では完全なインデックスの説明を必要とするように、単に0をスライスしていないあなたはまた、tf.packしようと思わ

import tensorflow as tf 
x = tf.constant([[1,1,1,1],[1,2,3,4]],shape=(2,4)) 
indices = [[0,0],[0,1]] 
y = tf.gather_nd(x,indices) 

に動作します。

また、ここtensorflowにおけるインデックステンソルの進捗状況を追跡することができます https://github.com/tensorflow/tensorflow/issues/206

関連する問題