tf.keras.preprocessing.sequence.pad_sequences(
sequences,
maxlen=None,
dtype='int32',
padding='pre',
truncating='pre',
value=0.0
)
pad_sequences函数用于对序列进行填充。参数sequences表示需要被填充的序列,参数maxlen表示填充后每一行最大的长度。
参数padding表示填充方式,是在前面填充还是在后面填充,默认为pre,表示从前面填充,还有另外一个可选值post,表示从后面开始填充。
参数truncating表示如果序列长度超过maxlen,删除方式是从前向后删除,还是从后向前删除。默认值为pre,表示从前向后删除。
参数value表示填充的值,dtype表示填充值的类型。返回为一个numpy数组类型。
>>> a = [[1, 2], [3], [4, 5, 6]]
# 默认为从前往后填充
>>> b = tf.keras.preprocessing.sequence.pad_sequences(a)
>>> b
array([[0, 1, 2],
[0, 0, 3],
[4, 5, 6]])
# 设置序列最大长度为2
>>> c = tf.keras.preprocessing.sequence.pad_sequences(a, maxlen=2)
>>> c
array([[1, 2],
[0, 3],
[5, 6]])
# 设置填充方式为从后面填充
>>> d = tf.keras.preprocessing.sequence.pad_sequences(a, maxlen=3, padding="post")
>>> d
array([[1, 2, 0],
[3, 0, 0],
[4, 5, 6]])
# 设置超过最大长度的序列删除方式为从后往前
>>> e = tf.keras.preprocessing.sequence.pad_sequences(a, maxlen=2, truncating="post")
>>> e
array([[1, 2],
[0, 3],
[4, 5]])