Kof*_*man 33 python deep-learning keras
可以在这里改进Keras文档.阅读完本文后,我仍然不明白这是怎么回事:Keras.io.preprocessing.sequence.pad_sequences
有人可以阐明这个功能的作用,并且理想情况下提供一个例子吗?
osc*_*fri 47
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)
Run Code Online (Sandbox Code Playgroud)
[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)
Run Code Online (Sandbox Code Playgroud)
现在每个序列的长度为3.
一些例子:
>>> from keras.preprocessing.sequence import pad_sequences
>>> a = [[1, 2, 3], [3, 4, 5, 6], [7, 8]]
>>> # add the 0's on the beginning of sequences
>>> pad_sequences(a)
array([[0, 1, 2, 3],
[3, 4, 5, 6],
[0, 0, 7, 8]])
>>> # add the 0's on the end of sequences
>>> pad_sequences(a, padding="post")
array([[1, 2, 3, 0],
[3, 4, 5, 6],
[7, 8, 0, 0]])
>>> # add a limit length of sequences
>>> pad_sequences(a, maxlen=3)
array([[1, 2, 3],
[4, 5, 6],
[0, 7, 8]])
>>> # add a limit length on the end of sequences
>>> pad_sequences(a, maxlen=3, padding="post")
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 0]])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20454 次 |
最近记录: |