Keras.io.preprocessing.sequence.pad_sequences是做什么的?
deep-learning
keras
python
6
0

Keras文档可以在此处进行改进。阅读完此内容后,我仍然不明白它的确切功能: Keras.io.preprocessing.sequence.pad_sequences

有人可以阐明此功能的作用,并提供一个理想的例子吗?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

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

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号