转:python函数——序列预处理pad_sequences()序列填充
0. 前言
为了实现的简便,keras只能接受长度相同的序列输入。因此如果目前序列长度参差不齐,这时需要使用pad_sequences()。该函数是将序列转化为经过填充以后的一个长度相同的新序列新序列。
1. 语法
官方语法如下1:
Code.1.1 pad_sequences语法
keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None, dtype='int32', padding='pre', truncating='pre', value=0.)
1.1 参数说明
sequences:浮点数或整数构成的两层嵌套列表
maxlen:None或整数,为序列的最大长度。大于此长度的序列将被截短,小于此长度的序列将在后部填0.
dtype:返回的numpy array的数据类型
padding:‘pre’或‘post’,确定当需要补0时,在序列的起始还是结尾补`
truncating:‘pre’或‘post’,确定当需要截断序列时,从起始还是结尾截断
value:浮点数,此值将在填充时代替默认的填充值0
1.2 返回值
返回的是个2维张量,长度为maxlen
2. 实例
Code.2.1 简单示例
>>>list_1 = [[2,3,4]] >>>keras.preprocessing.sequence.pad_sequences(list_1, maxlen=10) array([[0, 0, 0, 0, 0, 0, 0, 2, 3, 4]], dtype=int32) >>>list_2 = [[1,2,3,4,5]] >>>keras.preprocessing.sequence.pad_sequences(list_2, maxlen=10) array([[0, 0, 0, 0, 0, 1, 2, 3, 4, 5]], dtype=int32)
在自然语言中一般和分词器一起使用,在分词器笔记中也提到过pad_sequences使用效果,原文见
python函数——Keras分词器Tokenizer
Code.2.2 常用示例
>>>tokenizer.texts_to_sequences(["下 雨 我 加班"]) [[4, 5, 6, 7]] >>>keras.preprocessing.sequence.pad_sequences(tokenizer.texts_to_sequences(["下 雨 我 加班"]), maxlen=20) array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7]],dtype=int32)
https://keras-cn.readthedocs.io/en/latest/preprocessing/sequence/ ↩︎
转自:https://blog.csdn.net/wcy23580/article/details/84957471
本文来自博客园,作者:河北大学-徐小波,转载请注明原文链接:https://www.cnblogs.com/xuxiaobo/p/17226914.html

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步