####数据填充pad_sequences
from keras.preprocessing.sequence import pad_sequences

keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None,dtype='int32',padding='pre',truncating='pre', value=0.)

maxlen设置最大的序列长度,长于该长度的序列将会截短,短于该长度的序列将会填充

RNN网络容易出现反向传播过程中的梯度问题。主要原因是我们通常给RNN的参数为有限的序列。

为了实现的简便,keras只能接受长度相同的序列输入。因此如果目前序列长度参差不齐,这时需要使用pad_sequences()。该函数是将序列转化为经过填充以后的一个新序列。

举一个例子,是否使用对齐函数取决于如何切割本文,对于一个文本而言,如果是选择根据‘。’来分割句子,因此需要使用该函数保证每个分割的句子能够得到同等长度,但是更加聪明的做法是考虑将文本按照每一个字来分隔,保证切割的句子都是等长的句子,不要再使用该函数。

最后,输入RNN网络之前将词汇转化为分布式表示。
####案例

keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None, dtype=’int32’, padding=’pre’, truncating=’pre’, value=0.)

函数说明:
将长为nb_samples的序列(标量序列)转化为形如(nb_samples,nb_timesteps)2D numpy array。如果提供了参数maxlen,nb_timesteps=maxlen,否则其值为最长序列的长度。其他短于该长度的序列都会在后部填充0以达到该长度。长于nb_timesteps的序列将会被截断,以使其匹配目标长度。padding和截断发生的位置分别取决于padding和truncating.
参数
sequences:浮点数或整数构成的两层嵌套列表

maxlen:None或整数,为序列的最大长度。大于此长度的序列将被截短,小于此长度的序列将在后部填0.

dtype:返回的numpy array的数据类型

padding:‘pre’或‘post’,确定当需要补0时,在序列的起始还是结尾补

truncating:‘pre’或‘post’,确定当需要截断序列时,从起始还是结尾截断

value:浮点数,此值将在填充时代替默认的填充值0

返回值
返回形如(nb_samples,nb_timesteps)的2D张量

例子:

import tensorflow as tf
import numpy as nppad_sequence = tf.contrib.keras.preprocessing.sequence.pad_sequencesa=[[1,2,3],[4,5,6,7]]
b_len=np.array([len(_) for _ in a])
bs_packed = pad_sequence(a,maxlen=4,padding='pre',truncating='pre',value = 0)print(bs_packed)

输出:

[[0 1 2 3]
[4 5 6 7]]

keras之数据预处理相关推荐

  1. Keras学习---数据预处理篇

    1. 数据预处理是必要的,这里以最简单的MNIST dataset的输入数据预处理为例.  A. 设置随机种子      np.random.seed(1337)  # for reproducibi ...

  2. 你在数据预处理上花费的时间,是否比机器学习还要多?

    你在数据预处理上花费的时间,是否比机器学习还要多? 本文作者:三川 2017-05-31 19:05 导语:IBM 模型架构专家,向大家介绍一个新出世的 Python 数据预处理神器--nuts-ml ...

  3. [Python人工智能] 二十六.基于BiLSTM-CRF的医学命名实体识别研究(上)数据预处理

    这篇文章写得很冗余,但是我相信你如果真的看完,并且按照我的代码和逻辑进行分析,对您以后的数据预处理和命名实体识别都有帮助,只有真正对这些复杂的文本进行NLP处理后,您才能适应更多的真实环境,坚持!毕竟 ...

  4. keras时间序列数据预测_使用Keras的时间序列数据中的异常检测

    keras时间序列数据预测 Anomaly Detection in time series data provides e-commerce companies, finances the insi ...

  5. 数据集准备及数据预处理_1.准备数据集

    数据集准备及数据预处理 In this post I will introduce an example of how to upgrade legacy tensorflow codes to ne ...

  6. cnn对网络数据预处理_CNN中的数据预处理和网络构建

    cnn对网络数据预处理 In this article, we will go through the end-to-end pipeline of training convolution neur ...

  7. [深度学习TF2][RNN-LSTM]文本情感分析包含(数据预处理-训练-预测)

    基于LSTM的文本情感分析 0. 前言 1. 数据下载 2. 训练数据介绍 3. 用到Word2Vector介绍 wordsList.npy介绍 wordVectors.npy介绍 4 数据预处理 4 ...

  8. Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略

    Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...

  9. 机器学习笔记六——特征工程之数据预处理

    特征工程之数据预处理 1. 处理缺失值 2. 处理异常值 2.1 异常值检测 2.2异常值处理 3.离散特征的连续化处理 4.连续特征的离散化处理 5. 处理类别不平衡问题 6. 图片数据扩充 数据预 ...

最新文章

  1. 【NOIP2013模拟】粉刷匠 题解代码
  2. VMware vsphere client报错问题
  3. leetcode 279 四平方定理
  4. 在线普通话转粤语发音_香港最新悬疑侦探剧福尔摩师奶,粤语知识好难
  5. vb检测html事件,VB代码VB小程序:捕获 WebBrowser 控件的鼠标事件
  6. TORCHVISION MODELS
  7. opencv-api adaptiveThreshold
  8. 控制反转与依赖注入概述——Spring IOC/DI(一)
  9. 推荐系统实践(四)----基于标签的推荐算法
  10. C语言的printf输出格式
  11. ubuntu开机自启动python程序
  12. Science:大脑中睡眠的相互关联原因和结果
  13. java pdf添加图片_Java编辑PDF写入文字 插入图片
  14. 晶圆激光切割工艺流程
  15. Windows 8.1下释放磁盘空间的指南
  16. STM32 CANbootloader 升级功能开发(3)逻辑功能开发
  17. 110配线架打法图解_110配线架详解[来自互联网]
  18. 22岁90后白羊座罗生和勒索病毒的背后故事
  19. 3.17√ 识别次读入的一个以@为结束符的字符序列是否为形如”序列1序列2“模式的字符序列 ,序列12均没有,且序列2为序列1的逆序列
  20. Java开发技巧!和阿里大佬的技术面谈

热门文章

  1. 11月钓鱼网站简报:阿里巴巴占比居首 新网次之
  2. 2012-11-21四六级词汇#9312;-----…
  3. 复旦大学、华东师大回应
  4. MATLAB-编程入门
  5. u盘在计算机硬盘量,电脑硬盘指示灯一直亮怎么办
  6. js如何把时间戳转化为日期
  7. 读取csv时中文乱码问题
  8. SLAM前端知识汇总
  9. 如何用阿里iconfont,在伪元素选择器content:‘‘中添加文字标签
  10. 虚拟机服务器负荷,虚拟机中服务的负荷评估和负载均衡方法