pad_sequences
用于确保列表中的所有序列具有相同的长度。默认情况下,这是通过在每个序列的开头填充0
来完成的,直到每个序列的长度与最长序列的长度相同。
例如
>>> pad_sequences([[1, 2, 3], [3, 4, 5, 6], [7, 8]])
array([[0, 1, 2, 3],
[3, 4, 5, 6],
[0, 0, 7, 8]], dtype=int32)
[3, 4, 5, 6]
是最长的序列,因此0
将填充到其他序列,因此它们的长度匹配[3, 4, 5, 6]
。
如果您想填充到序列的末尾,可以设置padding='post'
。
如果要指定每个序列的最大长度,则可以使用maxlen
参数。这将截断所有序列长于maxlen
。
>>> pad_sequences([[1, 2, 3], [3, 4, 5, 6], [7, 8]], maxlen=3)
array([[1, 2, 3],
[4, 5, 6],
[0, 7, 8]], dtype=int32)
现在每个序列的长度改为3。
根据文档,可以使用pad_sequences控制截断。默认情况下,截断设置为pre
,这会截断序列的开始部分。如果您想截断序列的结尾部分,可以将其设置为post
。
0
Keras文档可以在此处进行改进。阅读完此内容后,我仍然不明白它的确切功能: Keras.io.preprocessing.sequence.pad_sequences
有人可以阐明此功能的作用,并提供一个理想的例子吗?