tensorflow学习笔记(二)训练数据的划分

本文重点学习tf.contrib.timeseries.RandomWindowInputFn中的数据分割方法
源代码链接tensorflow/contrib/timeseries/python/timeseries/input_pipeline.py.

tensorflow/contrib/timeseries/python/timeseries/input_pipeline.py

定义了切割和重新排列时间序列的方法,主要的特点在于组块。先是将时间序列分割为一个个小的内部连续的窗口,然后再对窗口进行组块,提供给训练。优点是相比于将所有时间序列按顺序循环,可以明显提高训练速度,因为其可以开拓数据并行运算和减少多余的梯度计算。

一个时间序列,由时间(递增的整数向量)和值(一个历元对应一个或多个浮点值)和其它的特征值,以多种格式存储在内存中或者是磁盘中,其存储位置和格式由格式由TimeSeriesReader(通常为’RandomWindowInputFn’)对象规定(如’NumpyReader’,‘CSVReader’).

时间序列通过此管道,映射为特征名和其值的字典。对于训练和评估,它们需要最小化’TrainEvalFeatures.TIMES’和’TrainEvalFeatures.VALUES’.外部的特征可以为任意大小,但是也要对齐到时间戳。时间序列并不需要严格连续和规整,也就是说,时间序列是可以中间有间隔的。但是对于存在的时间,必须有其对应的值。

要使用TimeSeriesInputFn的话,必须要先进行参数配置,然后将一个读取的对象传递给它,之后TimeSeriesInputFn才可以作为Input_fn传递给estimator

RandomWindowInputFn是对时间序列进行训练和质量评估的主要工具
WholeDatasetInputFn 读取整个序列到内存中,通常用于评估结果,并且为预报做准备

** Class RandomWindowInputFn: **
用途 :用于包装TimeseriesReader以生成随机的批量窗口。
操作 :Tensors先是被处理为序列窗口(一个窗口内时间序列为顺序序列,由tf.train.batch创建)。然后这些窗口随机组合成数据组。Tensor返回的是由create_batch创建的[batch_size, window_size]大小的数据。TimeSeriesInputFn在训练和质量评估中均有作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值