读取器
读取器从存储中的数据集迭代记录,并将数据加载到数据向量中。除了数据集中的单个条目之外,阅读器的用处包括:如果想要在语料库上训练文本生成器,或是以编程方式将两个条目组合在一起形成新的记录的时候该怎么办?读取器实现对于复杂的文件类型或分布式存储机制是有用的。
读取器返回记录记录中每一列的Writable类。这些类用于将每个记录转换为张量/NDArray 格式。
使用
每个读取器实现都扩展了BaseRecordReader并提供了一个简单的API用于选取数据集中的下一条记录,行为类似于迭代器。
包括以下有用的方法:
-
next
: 返回一个批量的Writable
。 -
nextRecord
: 返回单条记录,RecordMetaData
是可选的。 -
reset
: 重置基础迭代器。 -
hasNext
: 迭代器方法以确定是否有其他记录可用 。
监听器
你可以将自定义的RecordListener挂钩到记录读取器进行调试或可视化目的。在初始化类之后,立即将你的自定义侦听器传递给addListener基类方法。
读取器的类型
initialize
public void initialize(InputSplit split) throws IOException, InterruptedException
记录读取器用于每个管道。独立的记录是由两个集合连接而成的。
ConcatenatingRecordReader 连接记录读取器
把多个读取器合并为一个读取器。记录按顺序读取-因此如果第一个取读器有100条记录,并且第二个读取器有200条记录,那么连接记录读取器将有300条记录。
FileRecordReader 文件记录读取器
文件读取/写入
getCurrentLabel
public int getCurrentLabel()
返回当前标签。标签列表中当前文件的父目录的索引。
- 返回当前文件父目录的索引
LineRecordReader 行记录读取器
一行一行读取文件
CollectionRecordReader 集合记录读取器
集合记录读取器,主要用于测试。
CollectionSequenceRecordReader 集合序列读取器
用于序列的集合记录读取器,主要用于测试。
initialize
public void initialize(InputSplit split) throws IOException, InterruptedException
- 参数records是序列集合。例如List<List<List>> 这里内部两个列表都是序列,并且外部的列表/集合是一个序列。
ListStringRecordReader 集合字符记录读取器
迭代一个字符列表返回一条记录
initialize
public void initialize(InputSplit split) throws IOException, InterruptedException
在初始化的时候调用一次。
- 参数 split是定义要读取的记录范围的拆分
- 抛出 IOException
- 抛出 InterruptedException
initialize
public void initialize(Configuration conf, InputSplit split) throws IOException, InterruptedException
在初始化的时候调用一次
- 参数 conf是一个用于初始化的配置
- 参数 split是定义要读取的记录范围的拆分
- 抛出 IOException
- 抛出 InterruptedException
hasNext
public boolean hasNext()
判断是否有下一条记录
- 返回布尔值
reset
public void reset()
重置
- return
nextRecord
public Record nextRecord()
从给定的DataInputStream加载记录,与{-link#next()}不同,RecordReader的内部状态没有修改。此方法的实现不应关闭DataInputStream。
- 参数 uri
- 参数 dataInputStream
- 抛出 IOException ,如果从输入流中读取的时候出错。
close
public void close() throws IOException
关闭此流并释放与之相关联的任何系统资源。如果流已经关闭,那么调用此方法没有效果。如{-Link AutoCutabySyCuffe()}所指出的,关闭可能失败的情况需要仔细注意。强烈建议在抛出{-code IOException}之前,放弃底层资源,并在内部将{-code Closeable}标记为关闭。
- 抛出 IOException, 如果 I/O 错误发生。
setConf
public void setConf(Configuration conf)
设置此对象要使用的配置。
- 参数 conf
getConf
public Configuration getConf()
返回此对象所使用的配置。
CSVRecordReader CSV记录读取器
简单的CSV读取器。
initialize
public void initialize(Configuration conf, InputSplit split) throws IOException, InterruptedException
跳过前n行
- 参数 skipNumLines 需要跳过的行数
CSVRegexRecordReader CSV正则记录读取器
一个CSV正则记录读取器,它可以使用正则将每个列拆分为其他列。
CSVSequenceRecordReader CSV序列记录读取器
CSV序列记录读取器此读取器旨在读取CSV格式的数据序列,其中每个序列在其自己的文件中定义(并且有多个文件),文件中的每一行表示一个时间步骤。
CSVVariableSlidingWindowRecordReader CSV可变滑动窗口记录读取器
在整个CSV上可变大小的滑动窗口。在实践中,滑动窗口大小开始于1,然后线性增加到最大线性序列,然后线性下降回到1。
initialize
public void initialize(Configuration conf, InputSplit split) throws IOException, InterruptedException
带有每个序列默认行数为10的无参构造器
LibSvmRecordReader LibSvm记录读取器
libsvm格式的记录读取器,它与SVMLight格式密切相关。与SCIKIT学习类似,我们为两种格式使用同一个读取器,因此该类是SvMLeadReadReader的子类。
关于格式的进一步细节可以在如下网站中找到
- http://svmlight.joachims.org/
- http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multilabel.html
- http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_svmlight_file.html
MatlabRecordReader Matlab记录读取器
Matlab记录读取器
SVMLightRecordReader SVMLight记录读取器
用于SVMLight格式的记录读取器,它通常可以描述为如下
LABEL INDEX:VALUE INDEX:VALUE …
SVMLight格式非常适合于稀疏数据(如词袋),因为它忽略了所有值为零的特征。
我们支持一个“扩展”版本,允许多个目标(或标签)用逗号分隔,如下:
LABEL1,LABEL2,… INDEX:VALUE INDEX:VALUE …
这可以用于表示多任务问题或具有稀疏二进制标签的多任务问题(通过“MULTILABEL”配置选项进行控制)。
与SCIKIT学习一样,我们支持基于零的和基于一个的索引。
关于格式的进一步细节可以在如下网站中找到
- http://svmlight.joachims.org/
- http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multilabel.html
- http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_svmlight_file.html
initialize
public void initialize(Configuration conf, InputSplit split) throws IOException, InterruptedException
在尝试读取记录之前调用。
- 参数 conf 是数据向量配置
- 参数 split是文件分割器
- 抛出 IOException
- 抛出 InterruptedException
setConf
public void setConf(Configuration conf)
Set configuration. 设置配置
- 参数 conf 是数据向量配置
- 抛出 IOException
- 抛出 InterruptedException
hasNext
public boolean hasNext()
帮助检测被注释的行的帮助函数。可以提前读取并缓存一行。
- return
nextRecord
public Record nextRecord()
以Writables的列表返回下一个记录。
- return
RegexLineRecordReader 正则行记录读取器
读取一整个文件,每次一行,并使用正则分割字段。例如:输入数据的格试为“2016-01-01 23:59:59.001 1 DEBUG First entry message!”
使用正则字符 “(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}) (\d+) ([A-Z]+) (.)”将被分割为4个文本writables: [“2016-01-01 23:59:59.001”, “1”, “DEBUG”, “First entry message!”]
相关推荐
解决数码视讯Q5使用USB_Burning_Tool刷机时 提示 初始化DDR/读取初始化结果/USB错误
///////////////////////读取文本中的行数据//////////////////
android 使用SharedPreferences对数据存储/删除/读取/文件删除
前端js解析/读取excel文件,完整解析,简单操作,官网地址 http://oss.sheetjs.com/js-xlsx/
读取系统版本信息 读取DLL或EXE版本信息 适用于PowerBuilder11以上
Javascript 实现的二维码产生/读取, 纯javascript实现
c#通过model生成/读取xml文件,将数据保存到本地的一种手段。
颜色读取器/屏幕取色小工具,内含颜色表(ColorTable.htm),点击ColorSucker.exe运行,网页设计,程序开发必备。
stm32f103移植freertos+freemodbus 含设置/读取步科伺服电机参数例程
获得/读取一个目录下所有文件(包括子目录下)。。。。好用的很,一个方法搞定.....
基于labview的OneNET云平台数据写入与读取。 可通过labview往云台设备写入/读取数据。 也可通过手机app查看labview写入的数据,实现实时监控。
编译原理实验程序集.rar : 无符号数的自动机实现/单词的识别/读取无符号数/无符号数的有穷自动机/ 标识符识别,用C或C++实现
正确的使用java代码创建excel/world加入文字格式样式等,并会使用poi技术导出excel/world
C51单片机控制AD7746芯片读取电容值后通过共阴极数码管显示的KIEL工程源码,可做为你的学习设计参考。 void main() { initt(); while(1) { read_add(MRD,3);//读取的值共有3个字节24位 H=MRD[0];//读取高8位...
展示了数据库中图片的保存和读取 MFC SQL Server2000 ado
利用OPENCV自带库,读取摄像头,采集信号,扣除背景,计算质心,
本例可以实现窗口的分割,分成三个部分,一个显示处理前的位图,一个显示处理后的位图,还有一个现实位图的信息。
NULL 博文链接:https://heisetoufa.iteye.com/blog/1932073