keras之数据预处理
####数据填充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之数据预处理相关推荐
- Keras学习---数据预处理篇
1. 数据预处理是必要的,这里以最简单的MNIST dataset的输入数据预处理为例. A. 设置随机种子 np.random.seed(1337) # for reproducibi ...
- 你在数据预处理上花费的时间,是否比机器学习还要多?
你在数据预处理上花费的时间,是否比机器学习还要多? 本文作者:三川 2017-05-31 19:05 导语:IBM 模型架构专家,向大家介绍一个新出世的 Python 数据预处理神器--nuts-ml ...
- [Python人工智能] 二十六.基于BiLSTM-CRF的医学命名实体识别研究(上)数据预处理
这篇文章写得很冗余,但是我相信你如果真的看完,并且按照我的代码和逻辑进行分析,对您以后的数据预处理和命名实体识别都有帮助,只有真正对这些复杂的文本进行NLP处理后,您才能适应更多的真实环境,坚持!毕竟 ...
- keras时间序列数据预测_使用Keras的时间序列数据中的异常检测
keras时间序列数据预测 Anomaly Detection in time series data provides e-commerce companies, finances the insi ...
- 数据集准备及数据预处理_1.准备数据集
数据集准备及数据预处理 In this post I will introduce an example of how to upgrade legacy tensorflow codes to ne ...
- cnn对网络数据预处理_CNN中的数据预处理和网络构建
cnn对网络数据预处理 In this article, we will go through the end-to-end pipeline of training convolution neur ...
- [深度学习TF2][RNN-LSTM]文本情感分析包含(数据预处理-训练-预测)
基于LSTM的文本情感分析 0. 前言 1. 数据下载 2. 训练数据介绍 3. 用到Word2Vector介绍 wordsList.npy介绍 wordVectors.npy介绍 4 数据预处理 4 ...
- Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略
Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...
- 机器学习笔记六——特征工程之数据预处理
特征工程之数据预处理 1. 处理缺失值 2. 处理异常值 2.1 异常值检测 2.2异常值处理 3.离散特征的连续化处理 4.连续特征的离散化处理 5. 处理类别不平衡问题 6. 图片数据扩充 数据预 ...
最新文章
- 【NOIP2013模拟】粉刷匠 题解代码
- VMware vsphere client报错问题
- leetcode 279 四平方定理
- 在线普通话转粤语发音_香港最新悬疑侦探剧福尔摩师奶,粤语知识好难
- vb检测html事件,VB代码VB小程序:捕获 WebBrowser 控件的鼠标事件
- TORCHVISION MODELS
- opencv-api adaptiveThreshold
- 控制反转与依赖注入概述——Spring IOC/DI(一)
- 推荐系统实践(四)----基于标签的推荐算法
- C语言的printf输出格式
- ubuntu开机自启动python程序
- Science:大脑中睡眠的相互关联原因和结果
- java pdf添加图片_Java编辑PDF写入文字 插入图片
- 晶圆激光切割工艺流程
- Windows 8.1下释放磁盘空间的指南
- STM32 CANbootloader 升级功能开发(3)逻辑功能开发
- 110配线架打法图解_110配线架详解[来自互联网]
- 22岁90后白羊座罗生和勒索病毒的背后故事
- 3.17√ 识别次读入的一个以@为结束符的字符序列是否为形如”序列1序列2“模式的字符序列 ,序列12均没有,且序列2为序列1的逆序列
- Java开发技巧!和阿里大佬的技术面谈