0

我有一些不同长度的序列(例如编码为数字数据的文本数据)。为了将它们放入张量中,使用零将它们右填充到固定宽度。例如:

import tensorflow as tf
x = tf.constant([[12, 31,  7,  5,  0,  0],
                 [ 1,  1,  0,  0,  0,  0],
                 [ 44, 9, 11, 21, 20, 22],
                 [  0, 0,  0,  0,  0,  0]])

现在我的问题是:如何测量这些填充序列的(内容)长度?

我希望从上面的示例中得到的输出是:

x_len = tf.constant([4, 2, 6, 0])
4

1 回答 1

0

一种解决方案是计算零的数量并将其从张量的宽度中减去,但 Tensorflow 已经具有无论如何计算非零值的功能tf.math.count_nonzero

因此,解决方案与以下一行一样简单:

x_len = tf.math.count_nonzero(x, axis=1)
于 2020-05-11T16:02:36.930 回答