tf.keras.preprocessing.sequence.pad_sequences函数

函数原型

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]])

你可能感兴趣的:(#,tensorflow,keras,python,tensorflow)