当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.keras.preprocessing.sequence.pad_sequences用法及代码示例


将序列填充到相同的长度。

用法

tf.keras.preprocessing.sequence.pad_sequences(
    sequences, maxlen=None, dtype='int32', padding='pre',
    truncating='pre', value=0.0
)

参数

  • sequences 序列列表(每个序列都是整数列表)。
  • maxlen 可选 Int,所有序列的最大长度。如果未提供,序列将被填充到最长的单个序列的长度。
  • dtype (可选,默认为 int32)。输出序列的类型。要使用可变长度字符串填充序列,可以使用 object
  • padding 字符串,'pre' 或 'post'(可选,默认为 'pre'):在每个序列之前或之后填充。
  • truncating 字符串,'pre' 或 'post'(可选,默认为 'pre'):从序列的开头或结尾删除大于 maxlen 的值。
  • value 浮点数或字符串,填充值。 (可选,默认为 0。)

返回

  • 形状为 (len(sequences), maxlen) 的 Numpy 数组

抛出

  • ValueError 如果 truncatingpadding 的值无效,或者 sequences 条目的形状无效。

此函数将序列(整数列表)的列表(长度为 num_samples )转换为形状为 (num_samples, num_timesteps) 的二维 Numpy 数组。 num_timestepsmaxlen 参数(如果提供),或者是列表中最长序列的长度。

num_timesteps 短的序列用value 填充,直到它们长到num_timesteps

长于 num_timesteps 的序列将被截断,以使其符合所需的长度。

发生填充或截断的位置分别由参数 paddingtruncating 确定。从序列的开头预填充或删除值是默认设置。

sequence = [[1], [2, 3], [4, 5, 6]]
tf.keras.preprocessing.sequence.pad_sequences(sequence)
array([[0, 0, 1],
       [0, 2, 3],
       [4, 5, 6]], dtype=int32)
tf.keras.preprocessing.sequence.pad_sequences(sequence, value=-1)
array([[-1, -1,  1],
       [-1,  2,  3],
       [ 4,  5,  6]], dtype=int32)
tf.keras.preprocessing.sequence.pad_sequences(sequence, padding='post')
array([[1, 0, 0],
       [2, 3, 0],
       [4, 5, 6]], dtype=int32)
tf.keras.preprocessing.sequence.pad_sequences(sequence, maxlen=2)
array([[0, 1],
       [2, 3],
       [5, 6]], dtype=int32)

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.preprocessing.sequence.pad_sequences。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。