Keras.io.preprocessing.sequence.pad_sequences有什么作用?

时间:2017-03-22 05:17:03

标签: python deep-learning keras

这里可以改进Keras文档。阅读完这篇文章之后,我仍然不明白这完全是什么:Keras.io.preprocessing.sequence.pad_sequences

有人可以说明这个功能是做什么的,理想情况下提供一个例子吗?

2 个答案:

答案 0 :(得分:34)

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。

答案 1 :(得分:0)

一些例子:

dbx = dropbox.Dropbox('access_token')

# create file
filename = '/local_files/file.json'
dbx.files_upload(f.read(), filename, mute=True)

# read file
filename = '/dropbox_root/file.json'
f, r = dbx.files_download(filename)
print(r.content)