tf.sequence_mask
Возвращает тензор маски, представляющий первые N позиций каждой ячейки.
tf.sequence_mask(
lengths,
maxlen=None,
dtype=tf.dtypes.bool,
name=None
)
Если lengths имеет форму [d_1, d_2, ..., d_n], результирующий тензор mask имеет тип dtype и форму [d_1, d_2, ..., d_n, maxlen], с
mask[i_1, i_2, ..., i_n, j] = (j < lengths[i_1, i_2, ..., i_n])
Примеры:
tf.sequence_mask([1, 3, 2], 5) # [[True, False, False, False, False],
# [True, True, True, False, False],
# [True, True, False, False, False]]
tf.sequence_mask([[1, 3],[2,0]]) # [[[True, False, False],
# [True, True, True]],
# [[True, True, False],
# [False, False, False]]]
| Аргументы |
lengths | целочисленный тензор, все его значения <= maxlen. |
maxlen | скалярный целочисленный тензор, размер последнего измерения возвращаемого тензора. По умолчанию - максимальное значение в lengths. |
dtype | тип данных результирующего тензора. |
name | имя операции. |
| Возвращаемое значение |
Тензор маски с формой lengths.shape + (maxlen,), преобразованный к указанному типу данных. |
| Исключения |
ValueError | если maxlen не является скаляром. |