Функция pad_sequences
Функция pad_sequences применяется к списку последовательностей
и приводит их к одинаковой длине. Первым параметром
функция принимает список последовательностей. Вторым параметром
можно передать максимальную длину maxlen. Третьим параметром
задается тип дополнения padding: 'pre' или 'post'.
Четвертым параметром передается значение заполнения value.
Пятым параметром задается тип обрезки truncating: 'pre' или 'post'.
Синтаксис
tf.keras.preprocessing.sequence.pad_sequences(
sequences,
maxlen=None,
dtype='int32',
padding='pre',
truncating='pre',
value=0.0
)
Пример
Давайте дополним последовательности до одинаковой длины:
import tensorflow as tf
seqs = [[1, 2, 3], [4, 5], [6]]
res = tf.keras.preprocessing.sequence.pad_sequences(seqs)
print(res)
Результат выполнения кода:
[[1 2 3]
[0 4 5]
[0 0 6]]
Пример
Давайте зададим максимальную длину 4 и дополнение в конце:
import tensorflow as tf
seqs = [[1, 2, 3], [4, 5], [6]]
res = tf.keras.preprocessing.sequence.pad_sequences(
seqs,
maxlen=4,
padding='post'
)
print(res)
Результат выполнения кода:
[[1 2 3 0]
[4 5 0 0]
[6 0 0 0]]
Пример
Давайте обрежем длинные последовательности с начала:
import tensorflow as tf
seqs = [[1, 2, 3, 4, 5], [6, 7]]
res = tf.keras.preprocessing.sequence.pad_sequences(
seqs,
maxlen=3,
truncating='pre'
)
print(res)
Результат выполнения кода:
[[3 4 5]
[0 6 7]]
Смотрите также
-
функцию
ngrams,
которая создает n-граммы из последовательности -
функцию
to_number,
которая преобразует строки в числа -
слой
CategoryEncoding,
который кодирует категориальные признаки -
функцию
text_dataset_from_directory,
которая создает датасет из текстовых файлов