我想做这样的事情。
假设我们有一个张量 A。
A = [[1,0],[0,4]]
我想从中获取非零值及其索引。
Nonzero values: [1,4]
Nonzero indices: [[0,0],[1,1]]
Numpy 中也有类似的操作。
np.flatnonzero(A)
返回展平 A 中非零的索引。
x.ravel()[np.flatnonzero(x)]
根据非零索引提取元素。
Here's a link http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.flatnonzero.html对于这些操作。
我如何使用 python 在 Tensorflow 中执行类似上面的 Numpy 操作?
(矩阵是否展平并不重要。)
您可以使用 Tensorflow 获得相同的结果不等于 https://www.tensorflow.org/versions/r0.10/api_docs/python/control_flow_ops.html#not_equal and where https://www.tensorflow.org/versions/r0.10/api_docs/python/control_flow_ops.html#where方法。
zero = tf.constant(0, dtype=tf.float32)
where = tf.not_equal(A, zero)
where
是一个形状相同的张量A
保持True
or False
,在以下情况下
[[True, False],
[False, True]]
这足以从其中选择零或非零元素A
。如果你想获得索引,你可以使用where
方法如下:
indices = tf.where(where)
where
张量有两个True
价值观如此indices
张量将有两个条目。where
张量的秩为二,因此条目将有两个索引:
[[0, 0],
[1, 1]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)