Qub*_*bix 3 arrays indexing tensorflow
对于张量
[[1 2 3 1]
[0 0 0 0]
[1 3 5 7]
[0 0 0 0]
[3 5 7 8]]
Run Code Online (Sandbox Code Playgroud)
如何获得 0 行的索引?即列表 [1,3],在 Tensorflow 中?
据我所知,您无法像使用更高级的库(如 NumPy)那样在一个命令中真正做到这一点。如果你真的想使用 TF 函数,我可以推荐一些:
x = tf.Variable([
[1,2,3,1],
[0,0,0,0],
[1,3,5,7],
[0,0,0,0],
[3,5,7,8]])
y = tf.Variable([0,0,0,0])
condition = tf.equal(x, y)
indices = tf.where(condition)
Run Code Online (Sandbox Code Playgroud)
这将导致以下结果:
[[1 0]
[1 1]
[1 2]
[1 3]
[3 0]
[3 1]
[3 2]
[3 3]]
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想获得零线,则可以使用以下内容:
row_wise_sum = tf.reduce_sum(tf.abs(x),1)
select_zero_sum = tf.where(tf.equal(row_wise_sum,0))
with tf.Session() as sess:
tf.global_variables_initializer().run()
print(sess.run(select_zero_sum))
Run Code Online (Sandbox Code Playgroud)
结果是:
[[1]
[3]]
Run Code Online (Sandbox Code Playgroud)