如何从一维张量-TensorFlow.js中删除零?

时间:2020-09-10 13:14:30

标签: javascript tensorflow.js

给出一个一维张量(只是为了清楚,而不是数组):[0,2,0,1,-3],我想只返回不为零的值。按照该示例,我想返回[2,1,-3]作为结果。如何在TensorFlow.js中做到这一点?

1 个答案:

答案 0 :(得分:1)

  • 首先,我们需要在转换为tf.whereAsync的张量上使用bool来查找非零值的索引。这样,除0值以外的所有值都为true,并因此收集了它们的索引。

  • 使用tf.gather,通过收集先前索引处的值来创建新的张量。

t = tf.tensor1d([0,2,0,1,-3])
indices = await tf.whereAsync(t.cast('bool'))
tf.gather(t, indices.reshape([-1])).print()