31

numpy では、次のことができます。

x = np.random.random((10,10))
a = np.random.randint(0,10,5)
b = np.random.randint(0,10,5)
x[a,b] # gives 5 entries from x, indexed according to the corresponding entries in a and b

TensorFlow で同等のものを試すと、次のようになります。

xt = tf.constant(x)
at = tf.constant(a)
bt = tf.constant(b)
xt[at,bt]

最後の行では、「Bad slice index tensor」という例外が発生します。TensorFlow は numpy や Theano のようなインデックス作成をサポートしていないようです。

これを行う TensorFlow の方法があるかどうかは誰にもわかりません (任意の値でテンソルにインデックスを付けます)。tf.nn.embedding 部分を見てきましたが、これに使用できるかどうかはわかりません。使用できたとしても、この簡単なものに対する大きな回避策です。

(現在、データをx入力としてフィードし、numpy でインデックス作成を行っていますが、x効率を高めるために TensorFlow 内に配置したいと考えていました)

4

3 に答える 3

10

LDGNのコメントは正しいです。これは現時点では不可能であり、リクエストされた機能です。github で issue#206をフォローすると、利用可能になったときに更新されます。多くの人がこの機能を望んでいます。

于 2015-11-16T17:18:11.293 に答える
2

では、Tensorflow 0.11基本的なインデックス作成が実装されています。より高度なインデックス作成 (ブール値のインデックス作成など) はまだありませんが、将来のバージョンで予定されているようです。

高度なインデックス作成はhttps://github.com/tensorflow/tensorflow/issues/4638で追跡できます

于 2016-12-09T05:30:09.987 に答える