我想做这样的事情。
假设我们有一个张量A。
A = [[1,0],[0,4]]我想从中得到非零值和它们的索引。
Nonzero values: [1,4]
Nonzero indices: [[0,0],[1,1]]在Numpy中也有类似的操作。
在展平的A中,np.flatnonzero(A)返回非零的索引。
x.ravel()[np.flatnonzero(x)]根据非零索引提取元素。
下面是这些操作的a link。
我如何用python在Tensorflow中做类似上面的Numpy操作呢?
(矩阵是否展平并不重要。)
发布于 2016-08-30 17:15:54
您可以使用not_equal和where方法在Tensorflow中实现相同的结果。
zero = tf.constant(0, dtype=tf.float32)
where = tf.not_equal(A, zero)在以下情况下,where是与A holding True或False形状相同的张量
[[True, False],
[False, True]]这足以从A中选择零或非零元素。如果您想获取索引,可以使用where方法,方法如下:
indices = tf.where(where)where张量有两个True值,因此indices张量将有两个条目。where张量的等级为2,因此条目将有两个索引:
[[0, 0],
[1, 1]]发布于 2018-05-11 15:20:25
#assume that an array has 0, 3.069711, 3.167817.
mask = tf.greater(array, 0)
non_zero_array = tf.boolean_mask(array, mask)https://stackoverflow.com/questions/39219414
复制相似问题