用法:
sequence_mask(lengths,maxlen=None,dtype=tf.bool,name=None
)
函数参数
- lengths:整数张量,其所有值小于等于maxlen。
- maxlen:标量整数张量,返回张量的最后维度的大小;默认值是lengths中的最大值。
- dtype:结果张量的输出类型。
- name:操作的名字。
用例子说明用法:
import tensorflow as tfa = tf.sequence_mask([1, 2, 3], 5)
b = tf.sequence_mask([[1, 2], [3, 4]])with tf.Session() as sess:sess.run(tf.global_variables_initializer())print(sess.run(a))print(sess.run(b))
输出:
[[ True False False False False]
[ True True False False False]
[ True True True False False]]
解析:maxlen是5,所以一共有5列,lengths有三个元素[1,2,3],所以有三行,每一行分别前1、2、3个元素为True
[[[ True False False False]
[ True True False False]]
[[ True True True False]
[ True True True True]]]
解析:因为没有指定maxlen,故maxlen默认取lengths中的最大值4,所以一共有4列,lengths是二维数组,将其看作由两个一维lengths组成,所以输出也可以看作由这两个一维lengths的输出所组成